Skip to main content

FlowEngine

Struct FlowEngine 

Source
pub struct FlowEngine;
Expand description

Concurrent flow simulation engine for race condition detection.

Spawns particles at entry points and propagates them through the graph. Nodes reached by particles from more than one distinct entry point are flagged as turbulence points — potential race conditions on shared mutable state.

Implementations§

Source§

impl FlowEngine

Source

pub fn new() -> Self

Create a new FlowEngine.

Source

pub fn simulate( &self, graph: &Graph, entry_nodes: &[NodeId], num_particles: u32, config: &FlowConfig, ) -> M1ndResult<FlowSimulationResult>

Run flow simulation. Main entry point for the MCP tool.

§Parameters
  • graph: finalized graph to simulate on
  • entry_nodes: starting positions for particles (at least one required)
  • num_particles: particles spawned per entry point (capped by config.max_particles)
  • config: simulation parameters
§Errors

Returns M1ndError::NoEntryPoints if entry_nodes is empty or graph has no nodes.

Source

pub fn discover_entry_points( &self, graph: &Graph, max_entries: usize, ) -> Vec<NodeId>

Auto-discover entry points from graph topology and naming patterns.

Prefers Function nodes matching ENTRY_POINT_PATTERNS. Falls back to File nodes with entry-like names if no functions match. Results are sorted by PageRank (or in-degree) descending, capped at 100.

§Parameters
  • graph: finalized graph to search
  • max_entries: maximum number of entry points to return (capped at 100)

Trait Implementations§

Source§

impl Default for FlowEngine

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

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, 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.