General improvements on API

This commit is contained in:
Sebastian committed 2026-09-09 08:02:35 +02:00
1 parent 56e09cd3f5
commit 55f61a4327
30 files changed
+1820 -2565

No files matched your search

+5 -9
View File
@@ -1,4 +1,4 @@
//! In-process transport: drives a `DocApiBackend` directly, inline.
//! In-process transport (plan §7): drives a `DocApiBackend` directly, inline.
//! Used by in-tree/built-in plugins and host tests. Thread-safe via a mutex so
//! many handles across many threads share it (calls are serialized).
@@ -17,9 +17,7 @@ pub struct InProcess<B: DocApiBackend> {
impl<B: DocApiBackend> InProcess<B> {
pub fn new(backend: B) -> Self {
Self {
backend: Mutex::new(backend),
}
Self { backend: Mutex::new(backend) }
}
/// Borrow the backend immutably (test/introspection helper).
pub fn backend(&self) -> std::sync::MutexGuard<'_, B> {
@@ -29,11 +27,9 @@ impl<B: DocApiBackend> InProcess<B> {
impl<B: DocApiBackend + Send> Transport for InProcess<B> {
fn apply(&self, req: DocApiEnvelope) -> ApiResult<Receipt> {
req.validate_version()?;
let mut backend = self
.backend
.lock()
.map_err(|_| crate::error::ApiError::Transport("in-process backend poisoned".into()))?;
let mut backend = self.backend.lock().map_err(|_| {
crate::error::ApiError::Transport("in-process backend poisoned".into())
})?;
match req.body {
EnvelopeBody::Op(op) => executor::apply_op(&mut *backend, op),
EnvelopeBody::Queries(queries) => executor::apply_queries(&mut *backend, queries),