Skip to main content

Bark

Struct Bark 

Source
pub struct Bark {
    pub at_ms: u64,
    pub rule: String,
    pub subject: String,
    pub message: String,
    pub sinks: Vec<SinkOutcome>,
}
Expand description

One fired alert, as it lands in $SHEP_HOME/barks.jsonl.

One JSON object per line, because the file is appended to by two writers (the bark dog when a rule fires, and the shepherd when an enabled dog exhausts its budget) and read by a third (shep barks). A line-delimited format is the one shape where an interrupted write costs the reader one record instead of the file.

Debug is derived, not redacted. Every field here is shep’s own prose or a config key — never a sink’s target — so printing a Bark is safe, and it must stay that way: a field that ever carried a webhook URL or token would need its own redacted Debug (IR-41) the day it lands, and this comment is the tripwire for that review.

Fields§

§at_ms: u64

Unix millis when the alert fired.

§rule: String

The rule that fired, or daemon when the shepherd wrote this itself.

§subject: String

What it is about: a sheep’s name, or a dog’s.

§message: String

The human-readable line. Plain English, no theme — this is read during an incident.

§sinks: Vec<SinkOutcome>

Which sinks the alert was delivered to, and whether each took it. Empty when the shepherd wrote the record itself: it has no sinks and no webhook code, and says so by carrying none.

Trait Implementations§

Source§

impl Clone for Bark

Source§

fn clone(&self) -> Bark

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Bark

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Bark

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for Bark

Source§

impl PartialEq for Bark

Source§

fn eq(&self, other: &Bark) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for Bark

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Bark

Auto Trait Implementations§

§

impl Freeze for Bark

§

impl RefUnwindSafe for Bark

§

impl Send for Bark

§

impl Sync for Bark

§

impl Unpin for Bark

§

impl UnsafeUnpin for Bark

§

impl UnwindSafe for Bark

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.