chat_core/chat/state.rs
1pub struct NoModel;
2pub struct WithModel<P>(pub(crate) P);
3
4pub struct Unstructured;
5pub struct Structured<T>(pub(crate) std::marker::PhantomData<T>);
6pub struct Streamed;
7pub struct Embedded;
8
9/// Type-state marker for a `Chat` that streams *both* outputs and inputs.
10/// Built via [`ChatBuilder::with_input_stream`]. Gates the
11/// `Chat<CP, InputStreamed>::stream(&mut messages)` method, which returns a
12/// [`ChatStream`](crate::chat::input::ChatStream): the output stream you
13/// iterate with `.next()`, carrying an input side you push to with
14/// `.send()`. The marker is intentionally not generic — input always rides
15/// the channel as `PartEnum`, and mapping any producer (microphone, camera)
16/// into `PartEnum` happens caller-side, before `send`.
17pub struct InputStreamed;