Skip to main content

PhlowRuntime

Struct PhlowRuntime 

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

Prepared runtime that can execute an in-memory pipeline.

Implementations§

Source§

impl PhlowRuntime

Source

pub fn new() -> Self

Create a new runtime with default settings.

This sets var_main to a default value so non-main pipelines auto-start.

Source

pub fn with_settings(settings: Settings) -> Self

Create a new runtime using explicit settings.

Source

pub fn set_pipeline(&mut self, pipeline: Value) -> &mut Self

Set the pipeline to be executed.

This clears any prepared runtime state.

Source

pub fn set_context(&mut self, context: Context) -> &mut Self

Set the execution context.

This clears any prepared runtime state.

Source

pub fn set_settings(&mut self, settings: Settings) -> &mut Self

Replace the runtime settings.

This clears any prepared runtime state.

Source

pub fn set_base_path<P: Into<PathBuf>>(&mut self, base_path: P) -> &mut Self

Set the base path used for resolving local module paths.

This clears any prepared runtime state.

Source

pub fn set_dispatch(&mut self, dispatch: Dispatch) -> &mut Self

Provide a custom tracing dispatch instead of initializing OpenTelemetry.

This clears any prepared runtime state.

Source

pub fn set_module<S: Into<String>>( &mut self, name: S, module: PhlowModule, ) -> &mut Self

Register an inline module by name.

The module must be declared in the pipeline modules list. The handler runs asynchronously inside the runtime.

This clears any prepared runtime state.

Source

pub fn settings(&self) -> &Settings

Read-only access to the current settings.

Source

pub fn settings_mut(&mut self) -> &mut Settings

Mutable access to settings.

This clears any prepared runtime state.

Source

pub async fn build(&mut self) -> Result<(), PhlowRuntimeError>

Build and prepare the runtime (load modules, tracing, and start loop).

Calling this multiple times is safe; it is a no-op if already prepared.

Source

pub async fn run(&mut self) -> Result<Value, PhlowRuntimeError>

Execute the pipeline and return its result.

This can be called multiple times after build. When the pipeline cannot auto-start (for example, a main module is present and var_main is not set), this returns Value::Undefined and shuts down the prepared runtime. For normal execution, call shutdown when you are done to release resources.

Source

pub async fn shutdown(&mut self) -> Result<(), PhlowRuntimeError>

Shut down the prepared runtime and release resources.

Call this when you are done reusing the runtime to close channels, wait for the runtime task, and flush tracing providers.

Trait Implementations§

Source§

impl Default for PhlowRuntime

Source§

fn default() -> Self

Returns the “default value” for a type. 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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

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