Skip to main content

CellDecl

Struct CellDecl 

Source
pub struct CellDecl {
    pub name: String,
    pub name_span: ExprSpan,
    pub type_name: Option<TypeExpr>,
    pub initializer: Option<Expr>,
    pub filter: Option<CellFilter>,
    pub require: Option<RequireBlock>,
    pub leading_comment: Option<Comment>,
    pub doc_comment: Option<String>,
    pub trailing_line_comment: Option<Comment>,
    pub blank_line_before: bool,
    pub span: ExprSpan,
}
Expand description

cell_decl = "cell" identifier cell_type_init [ cell_filter ] [ "require" "{" { requirement } "}" ] ";".

type_name/initializer are unresolved — no TypeRegistry lookup, no literal validation. Parsed declarations contain an annotation, an initializer, or both. Public field storage does not enforce this invariant for manually constructed nodes.

§Examples

See Module for annotated cells in a parsed sheet.

Fields§

§name: String

The cell’s declared name.

§name_span: ExprSpan

The name token’s span.

§type_name: Option<TypeExpr>

The : type_expr annotation, if present.

§initializer: Option<Expr>

The = expression initializer, if present. Unresolved and unevaluated here — see crate::parser::AdamParser for the compile-to-Sheet phase, which parses this with no cell scope pushed and evaluates it eagerly, once, at parse time.

§filter: Option<CellFilter>

The filter clause, if present.

§require: Option<RequireBlock>

The require { ... } validation block, if present.

§leading_comment: Option<Comment>

A leading ////* */ comment immediately preceding this declaration, if recovered by crate::trivia::attach_trivia.

§doc_comment: Option<String>

A leading /// doc comment immediately preceding this declaration, if recovered by crate::AdamAstParser.

§trailing_line_comment: Option<Comment>

A ////* */ comment on the same source line as this declaration’s own last token, if recovered by crate::trivia::attach_trivia. See https://github.com/stlab/cel-rs/issues/59.

§blank_line_before: bool

Whether a blank line preceded this declaration, if recovered by crate::trivia::attach_trivia.

§span: ExprSpan

The span of the whole cell ...; declaration.

Trait Implementations§

Source§

impl Clone for CellDecl

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CellDecl

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.