Context

Struct Context 

Source
pub struct Context { /* private fields */ }
Expand description

Execution context provided to nodes during execution.

The context provides access to:

  • Arena for reading/writing data
  • Pipeline configuration
  • Trace metadata
  • Logging and metrics
  • External providers (clock, HTTP, RNG, etc.)

§Providers

The context includes pluggable providers for external dependencies, enabling deterministic testing by mocking these dependencies.

In production, real providers are used automatically. In tests, use TestContext or the with_providers() constructor to inject mocks.

Implementations§

Source§

impl Context

Source

pub fn new( trace_id: TraceId, node_id: NodeId, reader: ArenaReader, writer: ArenaWriter, wal: Arc<Wal>, ) -> Self

Create a new execution context with default (real) providers.

Source

pub fn with_providers( trace_id: TraceId, node_id: NodeId, reader: ArenaReader, writer: ArenaWriter, wal: Arc<Wal>, clock: Arc<dyn ClockProvider>, http: Arc<dyn HttpProvider>, rng: Arc<dyn RngProvider>, uuid: Arc<dyn UuidProvider>, fs: Arc<dyn FsProvider>, env: Arc<dyn EnvProvider>, secrets: Arc<dyn SecretsProvider>, ) -> Self

Create a new execution context with custom providers.

This is primarily used for testing to inject mock providers.

Source

pub fn trace_id(&self) -> TraceId

Get the current trace ID.

Source

pub fn node_id(&self) -> NodeId

Get the current node ID.

Source

pub fn read_bytes(&self, ptr: RelPtr<()>) -> Result<Vec<u8>>

Read bytes from the arena using a relative pointer.

Source

pub fn write_bytes(&self, bytes: &[u8]) -> Result<RelPtr<()>>

Write bytes to the arena and return a relative pointer.

Source

pub fn read_raw(&self, offset: ArenaOffset, size: usize) -> Result<Vec<u8>>

Read raw bytes from the arena at a specific offset.

Source

pub fn write_raw(&self, bytes: &[u8]) -> Result<RelPtr<()>>

Write raw bytes to the arena.

Source

pub fn log(&self, message: impl AsRef<str>)

Log a message associated with this execution.

Source

pub fn warn(&self, message: impl AsRef<str>)

Log a warning message.

Source

pub fn error(&self, message: impl AsRef<str>)

Log an error message.

Source

pub fn write_position(&self) -> ArenaOffset

Get the current write position in the arena.

Source

pub fn wal(&self) -> &Wal

Get the WAL handle.

Source

pub fn clock(&self) -> &dyn ClockProvider

Get the clock provider.

Source

pub fn http(&self) -> &dyn HttpProvider

Get the HTTP provider.

Source

pub fn rng(&self) -> &dyn RngProvider

Get the RNG provider.

Source

pub fn uuid_provider(&self) -> &dyn UuidProvider

Get the UUID provider.

Source

pub fn fs(&self) -> &dyn FsProvider

Get the filesystem provider.

Source

pub fn env_provider(&self) -> &dyn EnvProvider

Get the environment provider.

Source

pub fn secrets(&self) -> &dyn SecretsProvider

Get the secrets provider.

Source

pub fn now(&self) -> u64

Get current time in nanoseconds (monotonic).

Source

pub fn system_time_millis(&self) -> u64

Get current system time in milliseconds since UNIX epoch.

Source

pub fn new_uuid(&self) -> Uuid

Generate a new UUID.

Source

pub fn random_u64(&self) -> u64

Generate a random u64.

Source

pub fn random_f64(&self) -> f64

Generate a random f64 in [0, 1).

Source

pub fn env_var(&self, key: &str) -> Option<String>

Get an environment variable.

Source

pub fn secret(&self, key: &str) -> Option<String>

Get a secret.

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

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
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> 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> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
Source§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
Source§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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