Skip to main content

Graph

Struct Graph 

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

A built, type-checked DAG. Tile-independent; build once per style and evaluate many times.

Implementations§

Source§

impl Graph

Source

pub fn len(&self) -> usize

Number of nodes.

Source

pub fn is_empty(&self) -> bool

Source

pub fn output(&self) -> NodeIx

Source

pub fn topo_order(&self) -> &[NodeIx]

Topological order; output node is last.

Source

pub fn node(&self, ix: NodeIx) -> &dyn Node

Source

pub fn node_id(&self, ix: NodeIx) -> &str

Source

pub fn upstream(&self, ix: NodeIx) -> impl Iterator<Item = NodeIx> + '_

Upstream nodes feeding ix, deduplicated.

Source

pub fn downstream(&self, ix: NodeIx) -> &[NodeIx]

Downstream nodes consuming ix’s output (may contain duplicates if the same node connects multiple of its input ports to ix).

Source

pub fn incoming(&self, ix: NodeIx, port_ix: usize) -> Option<NodeIx>

The source feeding node.inputs()[port_ix], if connected.

Source

pub fn output_kind(&self, ix: NodeIx) -> PortKind

Resolved output PortKind for ix. Decided at build time; polymorphic nodes’ kind is fixed once the graph is built.

Source

pub fn compute_levels(&self) -> Vec<u32>

Group nodes into evaluation “levels”. A node’s level is one more than the maximum level of its inputs (sources are at level 0). All nodes in the same level have no edges between them and can be evaluated in parallel. Returned as levels[node_ix] = depth.

Source

pub fn level_buckets(&self) -> Vec<Vec<NodeIx>>

Bucket nodes by level, preserving topo order within each bucket for determinism.

Source

pub fn compute_pad(&self, doc_pad: u32) -> Result<Vec<u32>, BuildError>

Compute the canvas padding each node must supply, given the document-level pad requested at the output.

Trait Implementations§

Source§

impl Debug for Graph

Source§

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

Formats the value using the given formatter. Read more

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, 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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more