pub struct RagChat { /* private fields */ }Expand description
A complete chat surface backed by a Ragrig controller.
Create it with RagChat::new, embed it directly (it implements
Render), and drive sessions through controller.
Attachments are one-shot: they are cleared after each question.
Implementations§
Source§impl RagChat
impl RagChat
Sourcepub fn new(
window: &mut Window,
cx: &mut Context<'_, Self>,
controller: Entity<RagController>,
) -> Self
pub fn new( window: &mut Window, cx: &mut Context<'_, Self>, controller: Entity<RagController>, ) -> Self
Create the transcript, composer, and event wiring.
Sourcepub fn set_empty_state(&mut self, empty: EmptyState, cx: &mut Context<'_, Self>)
pub fn set_empty_state(&mut self, empty: EmptyState, cx: &mut Context<'_, Self>)
Replace the empty-state card shown before the first question.
Sourcepub fn set_assistant(
&mut self,
identity: ChatIdentity,
cx: &mut Context<'_, Self>,
)
pub fn set_assistant( &mut self, identity: ChatIdentity, cx: &mut Context<'_, Self>, )
Set how the assistant signs its messages.
Sourcepub fn controller(&self) -> &Entity<RagController>
pub fn controller(&self) -> &Entity<RagController>
The controller, for session and library actions.
Sourcepub fn is_streaming(&self) -> bool
pub fn is_streaming(&self) -> bool
Whether an answer is currently streaming.
Sourcepub fn attachments(&self) -> &[PendingAttachment]
pub fn attachments(&self) -> &[PendingAttachment]
Context waiting for the next question.
Sourcepub fn attach_file(
&mut self,
name: impl Into<String>,
path: impl Into<PathBuf>,
cx: &mut Context<'_, Self>,
)
pub fn attach_file( &mut self, name: impl Into<String>, path: impl Into<PathBuf>, cx: &mut Context<'_, Self>, )
Attach a file. The worker parses it before generating.
Sourcepub fn attach_text(
&mut self,
label: impl Into<String>,
text: impl Into<String>,
cx: &mut Context<'_, Self>,
)
pub fn attach_text( &mut self, label: impl Into<String>, text: impl Into<String>, cx: &mut Context<'_, Self>, )
Attach in-memory text, e.g. an editor selection.
Sourcepub fn clear_attachments(&mut self, cx: &mut Context<'_, Self>)
pub fn clear_attachments(&mut self, cx: &mut Context<'_, Self>)
Drop every pending attachment.
Trait Implementations§
impl EventEmitter<RagChatEvent> for RagChat
Auto Trait Implementations§
impl !RefUnwindSafe for RagChat
impl !UnwindSafe for RagChat
impl Freeze for RagChat
impl Send for RagChat
impl Sync for RagChat
impl Unpin for RagChat
impl UnsafeUnpin for RagChat
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more