pub struct DFGGraph {
pub header: GpuDFGGraph,
pub nodes: Vec<GpuDFGNode>,
pub edges: Vec<GpuDFGEdge>,
pub node_index: HashMap<ActivityId, usize>,
pub edge_index: HashMap<(ActivityId, ActivityId), usize>,
}Expand description
High-level DFG representation with all components.
Fields§
§header: GpuDFGGraphGraph header/metadata.
nodes: Vec<GpuDFGNode>Activity nodes.
edges: Vec<GpuDFGEdge>Transition edges.
node_index: HashMap<ActivityId, usize>Activity ID to node index mapping.
edge_index: HashMap<(ActivityId, ActivityId), usize>Edge key (source, target) to edge index mapping.
Implementations§
Source§impl DFGGraph
impl DFGGraph
Sourcepub fn nodes(&self) -> &[GpuDFGNode]
pub fn nodes(&self) -> &[GpuDFGNode]
Get all nodes.
Sourcepub fn edges(&self) -> &[GpuDFGEdge]
pub fn edges(&self) -> &[GpuDFGEdge]
Get all edges.
Sourcepub fn node_count(&self) -> usize
pub fn node_count(&self) -> usize
Get node count.
Sourcepub fn edge_count(&self) -> usize
pub fn edge_count(&self) -> usize
Get edge count.
Sourcepub fn from_gpu(nodes: Vec<GpuDFGNode>, edges: Vec<GpuDFGEdge>) -> Self
pub fn from_gpu(nodes: Vec<GpuDFGNode>, edges: Vec<GpuDFGEdge>) -> Self
Create from GPU buffers.
Sourcepub fn update_node(
&mut self,
activity_id: ActivityId,
event_count: u32,
avg_duration: f32,
_cost: f32,
)
pub fn update_node( &mut self, activity_id: ActivityId, event_count: u32, avg_duration: f32, _cost: f32, )
Update a node by activity ID.
Sourcepub fn update_edge(
&mut self,
source: ActivityId,
target: ActivityId,
frequency: u32,
avg_duration: f32,
)
pub fn update_edge( &mut self, source: ActivityId, target: ActivityId, frequency: u32, avg_duration: f32, )
Update an edge.
Sourcepub fn get_node(&self, activity_id: ActivityId) -> Option<&GpuDFGNode>
pub fn get_node(&self, activity_id: ActivityId) -> Option<&GpuDFGNode>
Get node by activity ID.
Sourcepub fn get_node_mut(
&mut self,
activity_id: ActivityId,
) -> Option<&mut GpuDFGNode>
pub fn get_node_mut( &mut self, activity_id: ActivityId, ) -> Option<&mut GpuDFGNode>
Get mutable node by activity ID.
Sourcepub fn get_edge(
&self,
source: ActivityId,
target: ActivityId,
) -> Option<&GpuDFGEdge>
pub fn get_edge( &self, source: ActivityId, target: ActivityId, ) -> Option<&GpuDFGEdge>
Get edge by source and target.
Sourcepub fn add_or_update_node(
&mut self,
activity_id: ActivityId,
update_fn: impl FnOnce(&mut GpuDFGNode),
)
pub fn add_or_update_node( &mut self, activity_id: ActivityId, update_fn: impl FnOnce(&mut GpuDFGNode), )
Add or update a node.
Sourcepub fn add_or_update_edge(
&mut self,
source: ActivityId,
target: ActivityId,
update_fn: impl FnOnce(&mut GpuDFGEdge),
)
pub fn add_or_update_edge( &mut self, source: ActivityId, target: ActivityId, update_fn: impl FnOnce(&mut GpuDFGEdge), )
Add or update an edge.
Sourcepub fn start_activities(&self) -> impl Iterator<Item = &GpuDFGNode>
pub fn start_activities(&self) -> impl Iterator<Item = &GpuDFGNode>
Get start activities.
Sourcepub fn end_activities(&self) -> impl Iterator<Item = &GpuDFGNode>
pub fn end_activities(&self) -> impl Iterator<Item = &GpuDFGNode>
Get end activities.
Sourcepub fn outgoing_edges(
&self,
activity_id: ActivityId,
) -> impl Iterator<Item = &GpuDFGEdge>
pub fn outgoing_edges( &self, activity_id: ActivityId, ) -> impl Iterator<Item = &GpuDFGEdge>
Get outgoing edges for an activity.
Sourcepub fn incoming_edges(
&self,
activity_id: ActivityId,
) -> impl Iterator<Item = &GpuDFGEdge>
pub fn incoming_edges( &self, activity_id: ActivityId, ) -> impl Iterator<Item = &GpuDFGEdge>
Get incoming edges for an activity.
Sourcepub fn calculate_probabilities(&mut self)
pub fn calculate_probabilities(&mut self)
Calculate edge probabilities.
Sourcepub fn update_degrees(&mut self)
pub fn update_degrees(&mut self)
Update node degrees from edges.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DFGGraph
impl RefUnwindSafe for DFGGraph
impl Send for DFGGraph
impl Sync for DFGGraph
impl Unpin for DFGGraph
impl UnwindSafe for DFGGraph
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.