LangfuseState

Struct LangfuseState 

Source
pub struct LangfuseState<S = BoxedSpan> { /* private fields */ }
Expand description

State managed by the Langfuse interceptor across the request lifecycle.

This state is passed through the interceptor hooks to maintain span information without requiring global state.

Uses Mutex for interior mutability to ensure thread-safety in async contexts.

The generic type S is the Span type from the tracer.

Trait Implementations§

Source§

impl<S> Default for LangfuseState<S>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<T: Tracer + Send + Sync> Interceptor<LangfuseState<<T as Tracer>::Span>> for Arc<LangfuseInterceptor<T>>
where T::Span: Send + Sync + 'static,

Source§

fn before_request<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, ctx: &'life1 mut BeforeRequestContext<'life2, LangfuseState<T::Span>>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called before a request is sent. Read more
Source§

fn after_response<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, ctx: &'life1 AfterResponseContext<'life2, LangfuseState<T::Span>>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called after a successful non-streaming response is received.
Source§

fn on_stream_chunk<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, ctx: &'life1 StreamChunkContext<'life2, LangfuseState<T::Span>>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called for each chunk in a streaming response.
Source§

fn on_stream_end<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, ctx: &'life1 StreamEndContext<'life2, LangfuseState<T::Span>>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called when a streaming response completes successfully.
Source§

fn on_error<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, ctx: &'life1 ErrorContext<'life2, LangfuseState<T::Span>>, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called when an error occurs at any stage. Read more
Source§

impl<T: Tracer + Send + Sync> Interceptor<LangfuseState<<T as Tracer>::Span>> for LangfuseInterceptor<T>
where T::Span: Send + Sync + 'static,

Source§

fn before_request<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, ctx: &'life1 mut BeforeRequestContext<'life2, LangfuseState<T::Span>>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called before a request is sent. Read more
Source§

fn after_response<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, ctx: &'life1 AfterResponseContext<'life2, LangfuseState<T::Span>>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called after a successful non-streaming response is received.
Source§

fn on_stream_chunk<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _ctx: &'life1 StreamChunkContext<'life2, LangfuseState<T::Span>>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called for each chunk in a streaming response.
Source§

fn on_stream_end<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, ctx: &'life1 StreamEndContext<'life2, LangfuseState<T::Span>>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called when a streaming response completes successfully.
Source§

fn on_error<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, ctx: &'life1 ErrorContext<'life2, LangfuseState<T::Span>>, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called when an error occurs at any stage. Read more

Auto Trait Implementations§

§

impl<S = BoxedSpan> !Freeze for LangfuseState<S>

§

impl<S> RefUnwindSafe for LangfuseState<S>

§

impl<S> Send for LangfuseState<S>
where S: Send,

§

impl<S> Sync for LangfuseState<S>
where S: Send,

§

impl<S> Unpin for LangfuseState<S>
where S: Unpin,

§

impl<S> UnwindSafe for LangfuseState<S>

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

impl<T> ErasedDestructor for T
where T: 'static,