pub trait NonTerminalHandle: Sized {
type View;
// Required methods
fn node_id(&self) -> CstNodeId;
fn new_with_visit<F: CstFacade, E>(
index: CstNodeId,
tree: &F,
visit_ignored: &mut impl BuiltinTerminalVisitor<E, F>,
) -> Result<Self, CstConstructError<E>>;
fn get_view_with_visit<'v, F: CstFacade, V: BuiltinTerminalVisitor<E, F>, O, E>(
&self,
tree: &F,
visit: impl FnMut(Self::View, &'v mut V) -> (O, &'v mut V),
visit_ignored: &'v mut V,
) -> Result<O, CstConstructError<E>>;
fn kind(&self) -> NonTerminalKind;
// Provided methods
fn new<F: CstFacade>(
index: CstNodeId,
tree: &F,
) -> Result<Self, CstConstructError> { ... }
fn get_view<C: CstFacade>(
&self,
tree: &C,
) -> Result<Self::View, CstConstructError> { ... }
}Expand description
A trait that all generated non-terminal handles implements.
Required Associated Types§
Required Methods§
fn new_with_visit<F: CstFacade, E>( index: CstNodeId, tree: &F, visit_ignored: &mut impl BuiltinTerminalVisitor<E, F>, ) -> Result<Self, CstConstructError<E>>
Sourcefn get_view_with_visit<'v, F: CstFacade, V: BuiltinTerminalVisitor<E, F>, O, E>(
&self,
tree: &F,
visit: impl FnMut(Self::View, &'v mut V) -> (O, &'v mut V),
visit_ignored: &'v mut V,
) -> Result<O, CstConstructError<E>>
fn get_view_with_visit<'v, F: CstFacade, V: BuiltinTerminalVisitor<E, F>, O, E>( &self, tree: &F, visit: impl FnMut(Self::View, &'v mut V) -> (O, &'v mut V), visit_ignored: &'v mut V, ) -> Result<O, CstConstructError<E>>
Get the view of the non-terminal.
Sourcefn kind(&self) -> NonTerminalKind
fn kind(&self) -> NonTerminalKind
Get the kind of the non-terminal.
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.