fxrs_core/lib.rs
1//! Platform-neutral contracts and orchestration for fx.
2//!
3//! This crate intentionally performs no filesystem, terminal, process, or
4//! network I/O. The application runtime and test hosts implement the ports
5//! declared here and share the same agent semantics.
6
7mod agent;
8mod context;
9mod gateway;
10mod message;
11mod permission;
12mod read_evidence;
13mod redaction;
14mod session;
15mod tool;
16mod tool_result;
17
18pub use agent::*;
19pub use context::*;
20pub use gateway::*;
21pub use message::*;
22pub use permission::*;
23pub use read_evidence::*;
24pub use redaction::*;
25pub use session::*;
26pub use tool::*;
27pub use tool_result::*;
28
29/// Boxed future used by object-safe asynchronous ports.
30///
31/// Keeping this alias in core avoids selecting an async executor in the domain
32/// crate. The native composition root may use Tokio while embedded hosts may
33/// drive the same future with their own executor.
34pub type BoxFuture<'a, T> = std::pin::Pin<Box<dyn std::future::Future<Output = T> + Send + 'a>>;