// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// This file was generated by the `fx create` command. The template
// is located at `//tools/create/templates/component-default/meta/{{PROJECT_NAME}}.cml.tmpl-rust`.
// If you find something broken, we are eager to review fixes.

// hello-world-session component manifest.
// For information on manifest format and features,
// see https://fuchsia.dev/fuchsia-src/concepts/components/component_manifests.
{
    // [START include_block]
    include: [
        "inspect/client.shard.cml",
        "syslog/client.shard.cml",
    ],

    // [END include_block]

    // [START program_block]
    // Information about the program to run.
    program: {
        // Use the built-in ELF runner to run native binaries.
        runner: "elf",

        // The binary to run for this component.
        binary: "bin/hello-world-session",
    },

    // [END program_block]

    // [START capabilities_block]
    // Capabilities used by this component.
    use: [
        // List your component's dependencies here, ex:
        // { protocol: "fuchsia.net.name.Lookup" }
    ],
    expose: [
        // session_manager uses this protocol to start the session.
        {
            protocol: "fuchsia.component.Binder",
            from: "framework",
        },
    ],

    // [END capabilities_block]
}
