Skip to main content

Graph

Struct Graph 

Source
pub struct Graph { /* private fields */ }

Implementations§

Source§

impl Graph

Source

pub fn try_from_parts( nodes: impl IntoIterator<Item = Node>, edges: impl IntoIterator<Item = Edge>, ) -> Result<Graph, GraphError>

Creates a validated graph and canonicalizes its ordering.

§Errors

Returns an error for conflicting nodes, dangling edges, empty extractor identities, or invalid source spans.

Source

pub fn try_from_sorted_nodes( nodes: Vec<Node>, edges: impl IntoIterator<Item = Edge>, ) -> Result<Graph, GraphError>

Builds a canonical graph without re-sorting already sorted nodes.

Unsorted nodes safely fall back to Self::try_from_parts. Edges may arrive in any order and are still validated, sorted, and deduplicated.

§Errors

Returns the same validation errors as Self::try_from_parts.

Source

pub fn try_from_sorted_parts( nodes: Vec<Node>, edges: Vec<Edge>, ) -> Result<Graph, GraphError>

Builds faster when nodes and edges are already in canonical order.

Unordered input safely falls back to Self::try_from_parts.

§Errors

Returns the same validation errors as Self::try_from_parts.

Source

pub fn nodes(&self) -> &[Node]

Source

pub fn edges(&self) -> &[Edge]

Source

pub const fn topology(&self) -> &Topology

Source

pub fn node(&self, id: &str) -> Option<&Node>

Source

pub fn outgoing<'graph>( &'graph self, id: &NodeId, ) -> impl Iterator<Item = &'graph Edge>

Source

pub fn incoming<'graph>( &'graph self, id: &NodeId, ) -> impl Iterator<Item = &'graph Edge>

Source

pub fn edge_at(&self, index: EdgeIndex) -> Option<&Edge>

Source

pub fn node_index(&self, id: &str) -> Option<NodeIndex>

Source

pub fn node_at(&self, index: NodeIndex) -> Option<&Node>

Source

pub fn outgoing_at(&self, index: NodeIndex) -> impl Iterator<Item = &Edge>

Source

pub fn incoming_at(&self, index: NodeIndex) -> impl Iterator<Item = &Edge>

Source

pub fn outgoing_neighbors_at( &self, index: NodeIndex, ) -> impl Iterator<Item = NodeIndex>

Source

pub fn incoming_neighbors_at( &self, index: NodeIndex, ) -> impl Iterator<Item = NodeIndex>

Source

pub fn out_degree(&self, index: NodeIndex) -> Option<usize>

Source

pub fn in_degree(&self, index: NodeIndex) -> Option<usize>

Source

pub const fn node_count(&self) -> usize

Source

pub const fn edge_count(&self) -> usize

Source

pub const fn is_empty(&self) -> bool

Source

pub fn into_parts(self) -> (Vec<Node>, Vec<Edge>)

Source§

impl Graph

Source

pub fn traversal_cache(&self) -> TraversalCache

Derives an optional traversal cache without changing evidence storage.

Source

pub fn traversal_cache_with(&self, storage: TraversalStorage) -> TraversalCache

Derives a traversal cache with an explicit speed/space policy.

Trait Implementations§

Source§

impl Clone for Graph

Source§

fn clone(&self) -> Graph

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Graph

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Graph

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Graph, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for Graph

Source§

impl GraphView for Graph

Source§

impl IndexGraphView for Graph

Source§

impl PartialEq for Graph

Source§

fn eq(&self, other: &Graph) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for Graph

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Graph

Source§

impl TryFrom<LegacyGraph> for Graph

Source§

type Error = GraphError

The type returned in the event of a conversion error.
Source§

fn try_from(value: LegacyGraph) -> Result<Graph, GraphError>

Performs the conversion.

Auto Trait Implementations§

§

impl Freeze for Graph

§

impl RefUnwindSafe for Graph

§

impl Send for Graph

§

impl Sync for Graph

§

impl Unpin for Graph

§

impl UnsafeUnpin for Graph

§

impl UnwindSafe for Graph

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.