Struct StreamableParser

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

Incremental parser that can consume tokens one by one.

It keeps track of all tokens seen so far, exposes all fully parsed messages and retains the partially parsed state of the current message.

Implementations§

Source§

impl StreamableParser

Source

pub fn new(encoding: HarmonyEncoding, role: Option<Role>) -> Result<Self>

Create a new streaming parser starting with the given role.

Source

pub fn process(&mut self, token: u32) -> Result<&mut Self>

Source

pub fn process_eos(&mut self) -> Result<&mut Self>

Source

pub fn current_content(&self) -> Result<String>

Return the textual content of the current message so far.

Source

pub fn current_role(&self) -> Option<Role>

Role of the current message if it has been parsed.

Source

pub fn current_content_type(&self) -> Option<String>

Current content type if known.

Source

pub fn last_content_delta(&self) -> Result<Option<String>>

Decode the last content delta if available.

Source

pub fn into_messages(self) -> Vec<Message>

Consume the parser and return all parsed messages.

Source

pub fn messages(&self) -> &[Message]

All fully parsed messages so far.

Source

pub fn tokens(&self) -> &[u32]

All tokens that were fed into the parser.

Source

pub fn state_json(&self) -> Result<String>

Expose the current state as a JSON string for Python interop.

Source

pub fn current_recipient(&self) -> Option<String>

Return the current recipient if known.

Source

pub fn current_channel(&self) -> Option<String>

Return the current channel if known.

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