pub struct ProvenanceConfig {
pub enabled: bool,
pub track_all: bool,
}Expand description
[provenance] — master switch for the value-lineage engine
(src/extensions/provenance.rs).
The engine is already inert until a provenance -m NAME call arms
it, so enabled = true (the default) costs one relaxed atomic load
per hook site and nothing else. Setting enabled = false refuses
arming entirely: provenance -m reports the engine as disabled and
no hook can ever fire, which is the setting to use on a machine
where the ledger must not exist at all.
[provenance]
enabled = falsetrack_all = true skips the arming step entirely — every parameter
write and every shell function records a chain:
[provenance]
track_all = trueZSHRS_PROVENANCE=0 in the environment overrides the config and
disables the engine regardless of these fields;
ZSHRS_PROVENANCE_ALL=1 / =0 overrides track_all alone.
Fields§
§enabled: boolAllow provenance -m NAME to arm the lineage ledger.
track_all: boolTrack everything, with no -m call: every parameter the shell
writes and every shell function it defines or calls arms itself.
Off by default — with it on, the engine is armed from the first
line of the first rc file, so every hook does real work for the
life of the shell. ZSHRS_PROVENANCE_ALL=1 / =0 overrides this
field; enabled = false still wins over both.
Trait Implementations§
Source§impl Clone for ProvenanceConfig
impl Clone for ProvenanceConfig
Source§impl Debug for ProvenanceConfig
impl Debug for ProvenanceConfig
Source§impl Default for ProvenanceConfig
impl Default for ProvenanceConfig
Source§impl<'de> Deserialize<'de> for ProvenanceConfigwhere
ProvenanceConfig: Default,
impl<'de> Deserialize<'de> for ProvenanceConfigwhere
ProvenanceConfig: Default,
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>,
Auto Trait Implementations§
impl Freeze for ProvenanceConfig
impl RefUnwindSafe for ProvenanceConfig
impl Send for ProvenanceConfig
impl Sync for ProvenanceConfig
impl Unpin for ProvenanceConfig
impl UnsafeUnpin for ProvenanceConfig
impl UnwindSafe for ProvenanceConfig
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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