Trait egg::LanguageChildren

source ·
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§

source

fn len(&self) -> usize

Returns the number of children.

source

fn can_be_length(n: usize) -> bool

Checks if n is an acceptable number of children for this type.

source

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.

source

fn as_slice(&self) -> &[Id]

Returns a slice of the children Ids.

source

fn as_mut_slice(&mut self) -> &mut [Id]

Returns a mutable slice of the children Ids.

Provided Methods§

source

fn is_empty(&self) -> bool

Checks if there are no children.

Implementations on Foreign Types§

source§

impl LanguageChildren for Vec<Id>

source§

fn len(&self) -> usize

source§

fn can_be_length(_: usize) -> bool

source§

fn from_vec(v: Vec<Id>) -> Self

source§

fn as_slice(&self) -> &[Id]

source§

fn as_mut_slice(&mut self) -> &mut [Id]

source§

impl<const N: usize> LanguageChildren for [Id; N]

source§

fn len(&self) -> usize

source§

fn can_be_length(n: usize) -> bool

source§

fn from_vec(v: Vec<Id>) -> Self

source§

fn as_slice(&self) -> &[Id]

source§

fn as_mut_slice(&mut self) -> &mut [Id]

source§

impl LanguageChildren for Box<[Id]>

source§

fn len(&self) -> usize

source§

fn can_be_length(_: usize) -> bool

source§

fn from_vec(v: Vec<Id>) -> Self

source§

fn as_slice(&self) -> &[Id]

source§

fn as_mut_slice(&mut self) -> &mut [Id]

Implementors§