pub struct BoundedInMemoryStore { /* private fields */ }Expand description
带容量限制的内存存储
当达到容量限制时,自动清理最旧的记录
Implementations§
Source§impl BoundedInMemoryStore
impl BoundedInMemoryStore
Sourcepub fn new(max_messages: usize, max_api_calls: usize) -> BoundedInMemoryStore
pub fn new(max_messages: usize, max_api_calls: usize) -> BoundedInMemoryStore
创建带容量限制的内存存储
创建共享实例
Trait Implementations§
Source§impl AgentStore for BoundedInMemoryStore
impl AgentStore for BoundedInMemoryStore
Source§fn get_agent<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Agent>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_agent<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Agent>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
根据 ID 获取 agent
Source§fn get_agent_by_code<'life0, 'life1, 'async_trait>(
&'life0 self,
code: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Agent>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_agent_by_code<'life0, 'life1, 'async_trait>(
&'life0 self,
code: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Agent>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
根据 code 获取 agent(全局查找)
Source§fn get_agent_by_code_and_tenant<'life0, 'life1, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
code: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Agent>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_agent_by_code_and_tenant<'life0, 'life1, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
code: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Agent>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
根据 code 和租户 ID 获取 agent
Source§fn list_agents<'life0, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Agent>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn list_agents<'life0, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Agent>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
列出租户的所有 agents
Source§fn get_active_agents<'life0, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Agent>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_active_agents<'life0, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Agent>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
获取租户所有启用的 agents
Source§fn get_agent_with_provider<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<AgentConfig>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_agent_with_provider<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<AgentConfig>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
根据 ID 获取 agent 及其 provider 配置
Source§fn get_agent_by_code_with_provider<'life0, 'life1, 'async_trait>(
&'life0 self,
code: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<AgentConfig>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_agent_by_code_with_provider<'life0, 'life1, 'async_trait>(
&'life0 self,
code: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<AgentConfig>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
根据 code 获取 agent 及其 provider 配置(全局查找)
Source§fn get_agent_by_code_and_tenant_with_provider<'life0, 'life1, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
code: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<AgentConfig>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_agent_by_code_and_tenant_with_provider<'life0, 'life1, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
code: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<AgentConfig>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
根据 code 和租户 ID 获取 agent 及其 provider 配置
Source§impl ApiCallStore for BoundedInMemoryStore
impl ApiCallStore for BoundedInMemoryStore
Source§fn save_api_call<'life0, 'life1, 'async_trait>(
&'life0 self,
call: &'life1 LLMApiCall,
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn save_api_call<'life0, 'life1, 'async_trait>(
&'life0 self,
call: &'life1 LLMApiCall,
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
保存 API 调用记录
Source§fn get_api_call<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<LLMApiCall>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_api_call<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<LLMApiCall>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
获取 API 调用记录
Source§fn query_api_calls<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 QueryFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<LLMApiCall>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn query_api_calls<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 QueryFilter,
) -> Pin<Box<dyn Future<Output = Result<Vec<LLMApiCall>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
查询 API 调用记录
Source§fn get_statistics<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 QueryFilter,
) -> Pin<Box<dyn Future<Output = Result<UsageStatistics, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_statistics<'life0, 'life1, 'async_trait>(
&'life0 self,
filter: &'life1 QueryFilter,
) -> Pin<Box<dyn Future<Output = Result<UsageStatistics, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
统计 API 调用
Source§fn delete_api_call<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn delete_api_call<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
删除 API 调用记录
Source§fn cleanup_old_records<'life0, 'async_trait>(
&'life0 self,
before: DateTime<Utc>,
) -> Pin<Box<dyn Future<Output = Result<i64, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn cleanup_old_records<'life0, 'async_trait>(
&'life0 self,
before: DateTime<Utc>,
) -> Pin<Box<dyn Future<Output = Result<i64, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
清理旧记录
Source§fn save_api_calls<'life0, 'life1, 'async_trait>(
&'life0 self,
calls: &'life1 [LLMApiCall],
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn save_api_calls<'life0, 'life1, 'async_trait>(
&'life0 self,
calls: &'life1 [LLMApiCall],
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
批量保存 API 调用记录
Source§impl MessageStore for BoundedInMemoryStore
impl MessageStore for BoundedInMemoryStore
Source§fn save_message<'life0, 'life1, 'async_trait>(
&'life0 self,
message: &'life1 LLMMessage,
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn save_message<'life0, 'life1, 'async_trait>(
&'life0 self,
message: &'life1 LLMMessage,
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
保存消息
Source§fn get_message<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<LLMMessage>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_message<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<LLMMessage>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
获取消息
Source§fn get_session_messages<'life0, 'async_trait>(
&'life0 self,
session_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LLMMessage>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_session_messages<'life0, 'async_trait>(
&'life0 self,
session_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<LLMMessage>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
获取会话消息列表
Source§fn get_session_messages_paginated<'life0, 'async_trait>(
&'life0 self,
session_id: Uuid,
offset: i64,
limit: i64,
) -> Pin<Box<dyn Future<Output = Result<Vec<LLMMessage>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_session_messages_paginated<'life0, 'async_trait>(
&'life0 self,
session_id: Uuid,
offset: i64,
limit: i64,
) -> Pin<Box<dyn Future<Output = Result<Vec<LLMMessage>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
获取会话消息列表 (分页)
Source§fn delete_message<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn delete_message<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
删除消息
Source§fn delete_session_messages<'life0, 'async_trait>(
&'life0 self,
session_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<i64, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn delete_session_messages<'life0, 'async_trait>(
&'life0 self,
session_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<i64, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
删除会话所有消息
Source§fn count_session_messages<'life0, 'async_trait>(
&'life0 self,
session_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<i64, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn count_session_messages<'life0, 'async_trait>(
&'life0 self,
session_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<i64, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
统计会话消息数
Source§fn save_messages<'life0, 'life1, 'async_trait>(
&'life0 self,
messages: &'life1 [LLMMessage],
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn save_messages<'life0, 'life1, 'async_trait>(
&'life0 self,
messages: &'life1 [LLMMessage],
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
批量保存消息
Source§impl PersistenceStore for BoundedInMemoryStore
impl PersistenceStore for BoundedInMemoryStore
Source§fn backend_name(&self) -> &str
fn backend_name(&self) -> &str
获取存储后端名称
Source§fn is_connected(&self) -> bool
fn is_connected(&self) -> bool
检查连接状态
Source§impl ProviderStore for BoundedInMemoryStore
impl ProviderStore for BoundedInMemoryStore
Source§fn get_provider<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Provider>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_provider<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<Provider>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
根据 ID 获取 provider
Source§fn get_provider_by_name<'life0, 'life1, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Provider>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_provider_by_name<'life0, 'life1, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<Provider>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
根据名称和租户 ID 获取 provider
Source§fn list_providers<'life0, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Provider>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn list_providers<'life0, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Provider>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
列出租户的所有 providers
Source§fn get_enabled_providers<'life0, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Provider>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_enabled_providers<'life0, 'async_trait>(
&'life0 self,
tenant_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<Provider>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
获取租户所有启用的 providers
Source§impl SessionStore for BoundedInMemoryStore
impl SessionStore for BoundedInMemoryStore
Source§fn create_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session: &'life1 ChatSession,
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn create_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session: &'life1 ChatSession,
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
创建会话
Source§fn get_session<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<ChatSession>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_session<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<ChatSession>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
获取会话
Source§fn get_user_sessions<'life0, 'async_trait>(
&'life0 self,
user_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<ChatSession>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn get_user_sessions<'life0, 'async_trait>(
&'life0 self,
user_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Vec<ChatSession>, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
获取用户会话列表
Source§fn update_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session: &'life1 ChatSession,
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn update_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session: &'life1 ChatSession,
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
BoundedInMemoryStore: 'async_trait,
更新会话
Source§fn delete_session<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
fn delete_session<'life0, 'async_trait>(
&'life0 self,
id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, PersistenceError>> + Send + 'async_trait>>where
'life0: 'async_trait,
BoundedInMemoryStore: 'async_trait,
删除会话
Auto Trait Implementations§
impl !Freeze for BoundedInMemoryStore
impl !RefUnwindSafe for BoundedInMemoryStore
impl Send for BoundedInMemoryStore
impl Sync for BoundedInMemoryStore
impl Unpin for BoundedInMemoryStore
impl UnsafeUnpin for BoundedInMemoryStore
impl !UnwindSafe for BoundedInMemoryStore
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> 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 moreSource§impl<T> Message for T
impl<T> Message for T
Source§fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
Convert a BoxedMessage to this concrete type
Source§fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
Convert this message to a BoxedMessage