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 new() -> CycleDetector
pub fn new() -> CycleDetector
Create with default parameters
Sourcepub fn max_length(self, max: usize) -> CycleDetector
pub fn max_length(self, max: usize) -> CycleDetector
Set maximum cycle length
Sourcepub fn max_cycles(self, max: usize) -> CycleDetector
pub fn max_cycles(self, max: usize) -> CycleDetector
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§
Source§impl Default for CycleDetector
impl Default for CycleDetector
Source§fn default() -> CycleDetector
fn default() -> CycleDetector
Returns the “default value” for a type. Read more
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