pub struct Expr {
pub id: Option<usize>,
pub kind: ExprKind,
pub span: Option<Span>,
pub target_id: Option<usize>,
pub target_ids: Vec<usize>,
pub ty: Option<Ty>,
pub needs_window: bool,
pub alias: Option<String>,
}
Expand description
Expr is anything that has a value and thus a type. If it cannot contain nested Exprs, is should be under ExprKind::Literal.
Fields§
§id: Option<usize>
Unique identificator of the node. Set exactly once during semantic::resolve.
kind: ExprKind
§span: Option<Span>
§target_id: Option<usize>
For Idents, this is id of node referenced by the ident
target_ids: Vec<usize>
For ExprKind::All, these are ids of included nodes
ty: Option<Ty>
Type of expression this node represents. None means type has not yet been determined.
needs_window: bool
§alias: Option<String>
Implementations§
Trait Implementations§
source§impl<'de> Deserialize<'de> for Expr
impl<'de> Deserialize<'de> for Expr
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more