pub trait Node {
type Port: Clone;
type Meta: Default;
type InstantiateEnv;
// Required methods
fn next_port(&self) -> Self::Port;
fn update_meta(&self, meta: &Self::Meta);
fn instantiate(
&self,
env: &mut Self::InstantiateEnv,
meta: &mut Self::Meta,
graph: DfirGraph,
extra_stmts: &[Stmt],
sidecars: &[Expr],
);
}Available on crate feature
build only.Required Associated Types§
Sourcetype Port: Clone
type Port: Clone
A logical communication endpoint for this node.
Implementors are free to choose the concrete representation (for example,
a handle or identifier), but it must be Clone so that a single logical
port can be duplicated and passed to multiple consumers. New ports are
allocated via Self::next_port.
type Meta: Default
type InstantiateEnv
Required Methods§
fn update_meta(&self, meta: &Self::Meta)
fn instantiate( &self, env: &mut Self::InstantiateEnv, meta: &mut Self::Meta, graph: DfirGraph, extra_stmts: &[Stmt], sidecars: &[Expr], )
Implementors§
Source§impl Node for MaelstromExternal
Available on crate features maelstrom and deploy only.
impl Node for MaelstromExternal
Available on crate features
maelstrom and deploy only.Source§impl Node for DeployCluster
Available on crate feature deploy only.
impl Node for DeployCluster
Available on crate feature
deploy only.type Port = String
type Meta = SparseSecondaryMap<LocationKey, Vec<TaglessMemberId>>
type InstantiateEnv = Deployment
Source§impl Node for DeployExternal
Available on crate feature deploy only.
impl Node for DeployExternal
Available on crate feature
deploy only.type Port = String
type Meta = SparseSecondaryMap<LocationKey, Vec<TaglessMemberId>>
type InstantiateEnv = Deployment
Source§impl Node for DeployNode
Available on crate feature deploy only.
impl Node for DeployNode
Available on crate feature
deploy only.type Port = String
type Meta = SparseSecondaryMap<LocationKey, Vec<TaglessMemberId>>
type InstantiateEnv = Deployment
Source§impl Node for DockerDeployCluster
Available on crate features docker_deploy and deploy only.
impl Node for DockerDeployCluster
Available on crate features
docker_deploy and deploy only.Source§impl Node for DockerDeployExternal
Available on crate features docker_deploy and deploy only.
impl Node for DockerDeployExternal
Available on crate features
docker_deploy and deploy only.Source§impl Node for DockerDeployProcess
Available on crate features docker_deploy and deploy only.
impl Node for DockerDeployProcess
Available on crate features
docker_deploy and deploy only.Source§impl Node for EcsDeployCluster
Available on crate features ecs_deploy and deploy only.
impl Node for EcsDeployCluster
Available on crate features
ecs_deploy and deploy only.Source§impl Node for EcsDeployExternal
Available on crate features ecs_deploy and deploy only.
impl Node for EcsDeployExternal
Available on crate features
ecs_deploy and deploy only.Source§impl Node for EcsDeployProcess
Available on crate features ecs_deploy and deploy only.
impl Node for EcsDeployProcess
Available on crate features
ecs_deploy and deploy only.Source§impl Node for MaelstromCluster
Available on crate features maelstrom and deploy only.
impl Node for MaelstromCluster
Available on crate features
maelstrom and deploy only.