pub struct GraphSchema { /* private fields */ }Expand description
Schema for a graph collection.
Supports two modes:
- Strict mode: Only predefined node/edge types are allowed.
- Schemaless mode: Any node/edge type is accepted.
Implementations§
Source§impl GraphSchema
impl GraphSchema
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new strict (non-schemaless) graph schema.
Use with_node_type and with_edge_type to add allowed types.
Sourcepub fn schemaless() -> Self
pub fn schemaless() -> Self
Creates a schemaless graph schema that accepts any types.
Sourcepub fn with_node_type(self, node_type: NodeType) -> Self
pub fn with_node_type(self, node_type: NodeType) -> Self
Adds a node type to the schema (builder pattern).
Sourcepub fn with_edge_type(self, edge_type: EdgeType) -> Self
pub fn with_edge_type(self, edge_type: EdgeType) -> Self
Adds an edge type to the schema (builder pattern).
Sourcepub fn is_schemaless(&self) -> bool
pub fn is_schemaless(&self) -> bool
Returns whether this schema is schemaless.
Sourcepub fn node_types(&self) -> &[NodeType]
pub fn node_types(&self) -> &[NodeType]
Returns all node types in this schema.
Sourcepub fn edge_types(&self) -> &[EdgeType]
pub fn edge_types(&self) -> &[EdgeType]
Returns all edge types in this schema.
Sourcepub fn has_node_type(&self, name: &str) -> bool
pub fn has_node_type(&self, name: &str) -> bool
Checks if a node type exists in this schema.
Sourcepub fn has_edge_type(&self, name: &str) -> bool
pub fn has_edge_type(&self, name: &str) -> bool
Checks if an edge type exists in this schema.
Sourcepub fn validate_node_type(&self, type_name: &str) -> Result<()>
pub fn validate_node_type(&self, type_name: &str) -> Result<()>
Validates a node type against this schema.
Returns Ok(()) if the type is valid, or an error with details.
§Errors
Returns an error if schema is strict and type_name is not declared.
Sourcepub fn validate_edge_type(
&self,
edge_type: &str,
from_type: &str,
to_type: &str,
) -> Result<()>
pub fn validate_edge_type( &self, edge_type: &str, from_type: &str, to_type: &str, ) -> Result<()>
Validates an edge type against this schema.
Checks the edge type name and that source/target node types are valid.
§Errors
Returns an error if schema is strict and edge type or endpoint node types violate schema constraints.
Sourcepub fn get_node_type(&self, name: &str) -> Option<&NodeType>
pub fn get_node_type(&self, name: &str) -> Option<&NodeType>
Gets a node type by name.
Sourcepub fn get_edge_type(&self, name: &str) -> Option<&EdgeType>
pub fn get_edge_type(&self, name: &str) -> Option<&EdgeType>
Gets an edge type by name.
Trait Implementations§
Source§impl Clone for GraphSchema
impl Clone for GraphSchema
Source§fn clone(&self) -> GraphSchema
fn clone(&self) -> GraphSchema
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GraphSchema
impl Debug for GraphSchema
Source§impl Default for GraphSchema
impl Default for GraphSchema
Source§impl<'de> Deserialize<'de> for GraphSchema
impl<'de> Deserialize<'de> for GraphSchema
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for GraphSchema
impl PartialEq for GraphSchema
Source§impl Serialize for GraphSchema
impl Serialize for GraphSchema
impl StructuralPartialEq for GraphSchema
Auto Trait Implementations§
impl Freeze for GraphSchema
impl RefUnwindSafe for GraphSchema
impl Send for GraphSchema
impl Sync for GraphSchema
impl Unpin for GraphSchema
impl UnsafeUnpin for GraphSchema
impl UnwindSafe for GraphSchema
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);