pub struct Tree {
pub id: TreeId,
pub root: NodeId,
pub nodes: HashMap<NodeId, Node>,
pub state: Option<ResourceState>,
pub refs: Option<ResourceRefs>,
pub scheduled_deletion_at: Option<i64>,
pub archived_at: Option<i64>,
pub created_at: i64,
pub updated_at: i64,
pub metadata: Option<Value>,
}Expand description
A conversation tree
Fields§
§id: TreeIdUnique identifier for this tree
root: NodeIdRoot node ID
nodes: HashMap<NodeId, Node>All nodes in the tree (NodeId -> Node)
state: Option<ResourceState>Reference counting state
refs: Option<ResourceRefs>Reference count information
scheduled_deletion_at: Option<i64>Scheduled deletion timestamp (Unix seconds)
archived_at: Option<i64>Archived timestamp (Unix seconds)
created_at: i64Creation timestamp (Unix seconds)
updated_at: i64Last modified timestamp (Unix seconds)
metadata: Option<Value>Optional tree-level metadata (name, description, etc.)
Implementations§
Source§impl Tree
impl Tree
Sourcepub fn render(&self) -> String
pub fn render(&self) -> String
Render the tree as a text representation (handles shown as references)
Sourcepub async fn render_resolved<F, Fut>(&self, resolver: F) -> String
pub async fn render_resolved<F, Fut>(&self, resolver: F) -> String
Render the tree with resolved handle content
Takes a resolver function that converts handles to display strings. The resolver is called for each external node’s handle.
§Example
ⓘ
let rendered = tree.render_resolved(|handle| async move {
plexus.resolve_handle(handle).await
.map(|stream| extract_content(stream))
.unwrap_or_else(|_| format!("[unresolved: {}]", handle))
}).await;Trait Implementations§
Source§impl<'de> Deserialize<'de> for Tree
impl<'de> Deserialize<'de> for Tree
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<&Tree> for TreeSkeleton
impl From<&Tree> for TreeSkeleton
Source§impl JsonSchema for Tree
impl JsonSchema for Tree
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreimpl Eq for Tree
impl StructuralPartialEq for Tree
Auto Trait Implementations§
impl Freeze for Tree
impl RefUnwindSafe for Tree
impl Send for Tree
impl Sync for Tree
impl Unpin for Tree
impl UnsafeUnpin for Tree
impl UnwindSafe for Tree
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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