pub struct Session {
pub id: String,
pub path: PathBuf,
pub cwd: PathBuf,
pub boot_system_prompt: String,
pub llm: LlmSettings,
pub created_at: u64,
pub updated_at: u64,
pub messages: Vec<ChatMessage>,
pub history: Vec<SessionHistoryRecord>,
/* private fields */
}Fields§
§id: String§path: PathBuf§cwd: PathBuf§boot_system_prompt: String§llm: LlmSettings§created_at: u64§updated_at: u64§messages: Vec<ChatMessage>§history: Vec<SessionHistoryRecord>Implementations§
Source§impl Session
impl Session
pub fn create( home: &Path, cwd: &Path, boot_system_prompt: String, llm: LlmSettings, ) -> Result<Self, SessionError>
pub fn create_with_secret( home: &Path, cwd: &Path, boot_system_prompt: String, llm: LlmSettings, secret: Option<&str>, ) -> Result<Self, SessionError>
pub fn resume(home: &Path, id: &str) -> Result<Self, SessionError>
pub fn append_message( &mut self, message: ChatMessage, ) -> Result<(), SessionError>
pub fn append_interruption( &mut self, interruption: InterruptionRecord, ) -> Result<(), SessionError>
pub fn provider_messages(&self) -> Vec<ChatMessage>
pub fn list(home: &Path) -> Result<Vec<SessionMetadata>, SessionError>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Session
impl RefUnwindSafe for Session
impl Send for Session
impl Sync for Session
impl Unpin for Session
impl UnsafeUnpin for Session
impl UnwindSafe for Session
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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