pub enum Decl<'a, 'f> {
Const {
name: Ident<'a, 'f>,
value: Option<Spanned<'f, Expr<'a, 'f>>>,
ty: Option<TyExpr<'a, 'f>>,
},
Ty {
name: Spanned<'f, Ident<'a, 'f>>,
value: Spanned<'f, TyDecl<'a, 'f>>,
},
ExternalNode {
is_unsafe: bool,
is_function: bool,
name: Spanned<'f, Ident<'a, 'f>>,
static_params: Vec<Spanned<'f, StaticParamDecl<'a, 'f>>>,
params: Vec<Spanned<'f, VariableDecl<'a, 'f>>>,
outputs: Vec<Spanned<'f, VariableDecl<'a, 'f>>>,
},
Node {
is_unsafe: bool,
is_function: bool,
name: Spanned<'f, Ident<'a, 'f>>,
static_params: Vec<Spanned<'f, StaticParamDecl<'a, 'f>>>,
params: Vec<Spanned<'f, VariableDecl<'a, 'f>>>,
outputs: Vec<Spanned<'f, VariableDecl<'a, 'f>>>,
vars: Vec<Spanned<'f, VariableDecl<'a, 'f>>>,
consts: Vec<Spanned<'f, Decl<'a, 'f>>>,
body: Vec<Spanned<'f, BodyItem<'a, 'f>>>,
},
AliasNode {
is_unsafe: bool,
is_function: bool,
name: Spanned<'f, Ident<'a, 'f>>,
static_params: Vec<Spanned<'f, StaticParamDecl<'a, 'f>>>,
params: Vec<Spanned<'f, VariableDecl<'a, 'f>>>,
outputs: Vec<Spanned<'f, VariableDecl<'a, 'f>>>,
effective_node: Spanned<'f, (Spanned<'f, Ident<'a, 'f>>, Vec<StaticArg<'a, 'f>>)>,
},
Model {
name: Spanned<'f, Ident<'a, 'f>>,
uses: Vec<Spanned<'f, Ident<'a, 'f>>>,
needs: Vec<Spanned<'f, StaticParamDecl<'a, 'f>>>,
provides: Vec<Spanned<'f, AbstractDecl<'a, 'f>>>,
body: Vec<Spanned<'f, Decl<'a, 'f>>>,
},
PackageAlias {
name: Spanned<'f, Ident<'a, 'f>>,
model: Spanned<'f, Ident<'a, 'f>>,
static_params: Vec<(Spanned<'f, Ident<'a, 'f>>, StaticArg<'a, 'f>)>,
},
Package {
name: Spanned<'f, Ident<'a, 'f>>,
uses: Vec<Spanned<'f, Ident<'a, 'f>>>,
provides: Vec<Spanned<'f, AbstractDecl<'a, 'f>>>,
body: Vec<Spanned<'f, Decl<'a, 'f>>>,
},
}
Expand description
A single declaration
Variants§
Const
Constant declaration
Fields
Ty
Type declaration
Fields
ExternalNode
An external node.
Fields
§
static_params: Vec<Spanned<'f, StaticParamDecl<'a, 'f>>>
The static parameters it takes
§
params: Vec<Spanned<'f, VariableDecl<'a, 'f>>>
The dynamic parameters it takes
§
outputs: Vec<Spanned<'f, VariableDecl<'a, 'f>>>
Its outputs
Node
A local node
Fields
§
static_params: Vec<Spanned<'f, StaticParamDecl<'a, 'f>>>
The static parameters it takes
§
params: Vec<Spanned<'f, VariableDecl<'a, 'f>>>
The dynamic parameters it takes
§
outputs: Vec<Spanned<'f, VariableDecl<'a, 'f>>>
Its outputs
§
vars: Vec<Spanned<'f, VariableDecl<'a, 'f>>>
The local variables of this node
AliasNode
An alias node
Fields
§
static_params: Vec<Spanned<'f, StaticParamDecl<'a, 'f>>>
The static parameters it takes
§
params: Vec<Spanned<'f, VariableDecl<'a, 'f>>>
The dynamic parameters it takes
§
outputs: Vec<Spanned<'f, VariableDecl<'a, 'f>>>
Its outputs
Model
A package model
Fields
§
needs: Vec<Spanned<'f, StaticParamDecl<'a, 'f>>>
What functions/nodes/types/constants this model needs
§
provides: Vec<Spanned<'f, AbstractDecl<'a, 'f>>>
What functions/nodes/types/constants this model should provides
PackageAlias
A package alias
Fields
Package
A package definition
Trait Implementations§
Auto Trait Implementations§
impl<'a, 'f> Freeze for Decl<'a, 'f>
impl<'a, 'f> RefUnwindSafe for Decl<'a, 'f>
impl<'a, 'f> Send for Decl<'a, 'f>
impl<'a, 'f> Sync for Decl<'a, 'f>
impl<'a, 'f> Unpin for Decl<'a, 'f>
impl<'a, 'f> UnwindSafe for Decl<'a, 'f>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more