reactive_graph_client/client/instances/relations/args/
id_and_component.rs

1use crate::client::error::CommandError;
2use crate::client::instances::relations::args::id::RelationInstanceIdArgs;
3use crate::client::types::components::args::type_id::ComponentContainerTypeIdArgs;
4use clap::Args;
5use reactive_graph_graph::RelationInstanceId;
6
7/// Identifies a component of a relation instance.
8#[derive(Args, Debug, Clone)]
9pub(crate) struct RelationInstanceIdAndComponentArgs {
10    /// The id of the relation instance.
11    #[clap(flatten)]
12    pub id: RelationInstanceIdArgs,
13
14    /// The component type of the reactive instance.
15    #[clap(flatten)]
16    pub component_ty: ComponentContainerTypeIdArgs,
17}
18
19impl RelationInstanceIdAndComponentArgs {
20    pub fn not_found(&self) -> CommandError {
21        self.id.not_found()
22    }
23}
24
25impl From<&RelationInstanceIdAndComponentArgs> for RelationInstanceId {
26    fn from(args: &RelationInstanceIdAndComponentArgs) -> Self {
27        RelationInstanceId::from(&args.id)
28    }
29}