pub struct Citation {
pub uri: String,
pub accessed_at: String,
pub hash: Option<String>,
pub span: Option<SourceSpan>,
}Expand description
v0.7.0 Form 4 (issue #757) — fact-provenance citation envelope.
One entry inside Memory::citations. The shape mirrors common
scholarly-citation needs while staying substrate-friendly:
uri— URL,doc:<id>substrate pointer, orfile:<path>. The validator (crate::validate::validate_citation) rejects bare strings; callers must use one of the typed schemes.accessed_at— RFC3339 timestamp at which the cited source was read by the agent. Captures the fact-grain “when did this claim become known to me” datum.hash— optional SHA-256 of the cited content. Lets a downstream verifier confirm the source has not drifted since capture.span— optional byte-range pinning the specific quote inside the cited body. Composes withMemory::source_spanfor atom-grain lineage (the parent’s span points into the source, the atom’ssource_spanpoints into the parent’s body).
Fields§
§uri: String§accessed_at: String§hash: Option<String>§span: Option<SourceSpan>Trait Implementations§
Source§impl<'de> Deserialize<'de> for Citation
impl<'de> Deserialize<'de> for Citation
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>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Citation
impl StructuralPartialEq for Citation
Auto Trait Implementations§
impl Freeze for Citation
impl RefUnwindSafe for Citation
impl Send for Citation
impl Sync for Citation
impl Unpin for Citation
impl UnsafeUnpin for Citation
impl UnwindSafe for Citation
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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§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
Compare self to
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
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 more