pub trait LanguageChildren {
// Required methods
fn len(&self) -> usize;
fn can_be_length(n: usize) -> bool;
fn from_vec(v: Vec<Id>) -> Self;
fn as_slice(&self) -> &[Id];
fn as_mut_slice(&mut self) -> &mut [Id];
// Provided method
fn is_empty(&self) -> bool { ... }
}
Expand description
A marker that defines acceptable children types for define_language!
.
See define_language!
for more details.
You should not have to implement this trait.
Required Methods§
Sourcefn can_be_length(n: usize) -> bool
fn can_be_length(n: usize) -> bool
Checks if n is an acceptable number of children for this type.
Sourcefn from_vec(v: Vec<Id>) -> Self
fn from_vec(v: Vec<Id>) -> Self
Create an instance of this type from a Vec<Id>
,
with the guarantee that can_be_length is already true on the Vec
.
Sourcefn as_mut_slice(&mut self) -> &mut [Id]
fn as_mut_slice(&mut self) -> &mut [Id]
Returns a mutable slice of the children Id
s.
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.