pub enum VersionSpace {
Atom(CstNode),
Join {
kind: String,
children: Vec<VersionSpace>,
},
Union(Vec<VersionSpace>),
ListJoin {
kind: String,
ordering: ListOrdering,
left_items: Vec<VersionSpace>,
right_items: Vec<VersionSpace>,
base_items: Vec<VersionSpace>,
},
}Expand description
A version space representing a set of possible AST subtrees.
Variants§
Atom(CstNode)
A single concrete tree (leaf of the version space).
Join
Cross product: pick one child from each sub-space.
Union(Vec<VersionSpace>)
Union: pick from either sub-space.
ListJoin
List join: ordered combination of sub-spaces, allowing interleaving.
Fields
§
ordering: ListOrdering§
left_items: Vec<VersionSpace>§
right_items: Vec<VersionSpace>§
base_items: Vec<VersionSpace>Implementations§
Source§impl VersionSpace
impl VersionSpace
Trait Implementations§
Source§impl Clone for VersionSpace
impl Clone for VersionSpace
Source§fn clone(&self) -> VersionSpace
fn clone(&self) -> VersionSpace
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for VersionSpace
impl RefUnwindSafe for VersionSpace
impl Send for VersionSpace
impl Sync for VersionSpace
impl Unpin for VersionSpace
impl UnwindSafe for VersionSpace
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more