pub struct SchemaDocument {
pub nodes: Vec<SchemaNode>,
pub root: SchemaNodeId,
pub types: IndexMap<Identifier, SchemaNodeId>,
}Expand description
Schema document with arena-based node storage
Fields§
§nodes: Vec<SchemaNode>All schema nodes stored in a flat vector
root: SchemaNodeIdRoot node reference
types: IndexMap<Identifier, SchemaNodeId>Named type definitions ($types)
Implementations§
Source§impl SchemaDocument
impl SchemaDocument
Sourcepub fn of<T: BuildSchema + 'static>() -> SchemaDocument
pub fn of<T: BuildSchema + 'static>() -> SchemaDocument
Source§impl SchemaDocument
impl SchemaDocument
Sourcepub fn node(&self, id: SchemaNodeId) -> &SchemaNode
pub fn node(&self, id: SchemaNodeId) -> &SchemaNode
Get a reference to a node
Sourcepub fn node_mut(&mut self, id: SchemaNodeId) -> &mut SchemaNode
pub fn node_mut(&mut self, id: SchemaNodeId) -> &mut SchemaNode
Get a mutable reference to a node
Sourcepub fn create_node(&mut self, content: SchemaNodeContent) -> SchemaNodeId
pub fn create_node(&mut self, content: SchemaNodeContent) -> SchemaNodeId
Create a new node and return its ID
Sourcepub fn register_type(&mut self, name: Identifier, node_id: SchemaNodeId)
pub fn register_type(&mut self, name: Identifier, node_id: SchemaNodeId)
Register a named type
Sourcepub fn get_type(&self, name: &Identifier) -> Option<SchemaNodeId>
pub fn get_type(&self, name: &Identifier) -> Option<SchemaNodeId>
Look up a named type
Trait Implementations§
Source§impl Clone for SchemaDocument
impl Clone for SchemaDocument
Source§fn clone(&self) -> SchemaDocument
fn clone(&self) -> SchemaDocument
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 moreSource§impl Debug for SchemaDocument
impl Debug for SchemaDocument
Source§impl Default for SchemaDocument
impl Default for SchemaDocument
Source§impl PartialEq for SchemaDocument
impl PartialEq for SchemaDocument
impl StructuralPartialEq for SchemaDocument
Auto Trait Implementations§
impl Freeze for SchemaDocument
impl RefUnwindSafe for SchemaDocument
impl Send for SchemaDocument
impl Sync for SchemaDocument
impl Unpin for SchemaDocument
impl UnwindSafe for SchemaDocument
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