Enum syntree::TreeError [−][src]
#[non_exhaustive]
pub enum TreeError {
CloseError,
BuildError,
CloseAtError,
CursorOverflow,
IdOverflow,
}
Expand description
Errors raised while building a tree.
Variants (Non-exhaustive)
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
CloseError
Error raised by TreeBuilder::close if there currently is no node being built.
Examples
use syntree::{TreeBuilder, TreeError};
let mut tree = TreeBuilder::new();
tree.open("root")?;
tree.close()?;
// Syntax::Root and Syntax::Child is left open.
assert_eq!(tree.close(), Err(TreeError::CloseError));
BuildError
Error raised by TreeBuilder::build if the tree isn’t correctly balanced.
Examples
use syntree::{TreeBuilder, TreeError};
let mut tree = TreeBuilder::new();
tree.open("number")?;
tree.token("lit", 3)?;
tree.close()?;
tree.open("number")?;
// Syntax::Number is left open.
assert_eq!(tree.build(), Err(TreeError::BuildError));
CloseAtError
Error raised by TreeBuilder::close_at if we’re not trying to close at a sibling node.
Examples
use syntree::{TreeBuilder, TreeError};
let mut tree = TreeBuilder::new();
let c = tree.checkpoint()?;
tree.open("child")?;
tree.token("token", 3)?;
let result = tree.close_at(c, "operation");
assert_eq!(result, Err(TreeError::CloseAtError));
CursorOverflow
Cursor overflowed.
This only happens under extreme circumstances or if a feature is enabled which narrows the width of an identifier to the degree that this error is easier to accomplish.
IdOverflow
Identifier overflowed.
This only happens under extreme circumstances or if a feature is enabled which narrows the width of an identifier to the degree that this error is easier to accomplish.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for TreeError
impl UnwindSafe for TreeError
Blanket Implementations
Mutably borrows from an owned value. Read more