pub struct CycleDetector {
pub max_length: usize,
pub max_cycles: usize,
}Expand description
DFS-based cycle detection
Finds cycles in the graph, useful for detecting:
- Lateral movement loops
- Circular dependencies
- Trust cycles
Fields§
§max_length: usizeMaximum cycle length to find
max_cycles: usizeMaximum number of cycles to return
Implementations§
Source§impl CycleDetector
impl CycleDetector
Sourcepub fn max_length(self, max: usize) -> Self
pub fn max_length(self, max: usize) -> Self
Set maximum cycle length
Sourcepub fn max_cycles(self, max: usize) -> Self
pub fn max_cycles(self, max: usize) -> Self
Set maximum number of cycles to find
Sourcepub fn find(&self, graph: &GraphStore) -> CyclesResult
pub fn find(&self, graph: &GraphStore) -> CyclesResult
Find all cycles in the graph
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CycleDetector
impl RefUnwindSafe for CycleDetector
impl Send for CycleDetector
impl Sync for CycleDetector
impl Unpin for CycleDetector
impl UnsafeUnpin for CycleDetector
impl UnwindSafe for CycleDetector
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request