pub enum EdgeKind {
HasGotcha,
Imports,
AffectedBy,
HasNote,
DiscoveredIn,
CausedBy,
Supersedes,
Touched,
DependencyAffects,
CoChanges,
}Expand description
The 10 relationship kinds that can exist between nodes in the knowledge graph.
Stored in SurrealKV as part of the key: graph:edge:<from>:<kind>:<to>.
Variants§
HasGotcha
A file node has a gotcha record attached to it.
Imports
A file imports another file (from static analysis).
AffectedBy
A file or gotcha is affected by an architectural decision.
HasNote
A file or record has a developer note attached.
DiscoveredIn
A gotcha or decision was discovered in a specific session.
CausedBy
One gotcha or issue was caused by another.
Supersedes
A decision or gotcha supersedes an older one.
Touched
A file was touched in a session (passive learning).
DependencyAffects
A dependency change affects a file or module.
CoChanges
Two files are frequently committed together (git co-change).
Implementations§
Source§impl EdgeKind
impl EdgeKind
Sourcepub fn as_key_segment(&self) -> &'static str
pub fn as_key_segment(&self) -> &'static str
Canonical slug used as the key segment, e.g. has_gotcha.
Sourcepub fn from_key_segment(s: &str) -> Option<Self>
pub fn from_key_segment(s: &str) -> Option<Self>
Parse a key segment back into an EdgeKind.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for EdgeKind
impl<'de> Deserialize<'de> for EdgeKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for EdgeKind
impl StructuralPartialEq for EdgeKind
Auto Trait Implementations§
impl Freeze for EdgeKind
impl RefUnwindSafe for EdgeKind
impl Send for EdgeKind
impl Sync for EdgeKind
impl Unpin for EdgeKind
impl UnsafeUnpin for EdgeKind
impl UnwindSafe for EdgeKind
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn 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>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which 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)
&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)
&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> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> Fruit 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> 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>
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>
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 more