Skip to main content

WriteContext

Struct WriteContext 

Source
pub struct WriteContext {
    pub originator: Originator,
    pub interface: Option<String>,
    pub request_id: Option<String>,
}
Expand description

Per-request write context — set at the request entry point (HTTP/MQTT/gRPC dispatcher) and read by the backend logging layer to populate the corresponding fields on the LogEntry.

Threaded as a tokio task-local so that intermediate layers don’t have to pass Originator / interface / request id through every function signature. The HTTP dispatcher wraps each request future in WRITE_CTX::scope; any backend write that happens inside the scoped future reads the context and stamps the resulting log entry accordingly.

When no scope is active (background tasks, startup bootstrap, internal sweeps), current_write_context returns WriteContext::internal with component = "yeti-host" so the log still records a meaningful originator.

Fields§

§originator: Originator

Who initiated the write.

§interface: Option<String>

Which protocol the write came in through — "rest", "graphql", "mqtt", "mcp", "internal". None when not derivable.

§request_id: Option<String>

Optional request correlation id (e.g., the HTTP x-request-id header value or a generated UUID).

Implementations§

Source§

impl WriteContext

Source

pub fn internal() -> Self

The default fallback used when no scope is active. Marks the write as originating from the yeti-host platform itself.

Source

pub fn for_request( interface: impl Into<String>, user: Option<String>, request_id: Option<String>, ) -> Self

Construct a WriteContext for a request that came in through the named interface, identifying the authenticated user when known.

Source

pub fn for_replication(from_node: impl Into<String>) -> Self

Construct a WriteContext for a write applied locally in response to a peer’s replication stream.

Trait Implementations§

Source§

impl Clone for WriteContext

Source§

fn clone(&self) -> WriteContext

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 WriteContext

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

Source§

type Output = T

Should always be Self
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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more