Skip to main content

reifydb_runtime/actor/system/
mod.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2026 ReifyDB
3
4#[cfg(reifydb_dst)]
5pub mod dst;
6
7#[cfg(all(not(reifydb_single_threaded), not(reifydb_dst), not(loom)))]
8pub mod host;
9
10#[cfg(all(loom, not(reifydb_single_threaded)))]
11pub mod loom;
12
13#[cfg(all(reifydb_single_threaded, not(reifydb_dst)))]
14pub mod wasm;
15
16#[cfg(reifydb_dst)]
17pub use dst::{ActorHandle, ActorSpawner, ActorSystem, JoinError};
18#[cfg(all(not(reifydb_single_threaded), not(reifydb_dst), not(loom)))]
19pub use host::{ActorHandle, ActorSpawner, ActorSystem, JoinError};
20#[cfg(all(loom, not(reifydb_single_threaded)))]
21pub use loom::{ActorHandle, ActorSpawner, ActorSystem, JoinError};
22#[cfg(all(reifydb_single_threaded, not(reifydb_dst)))]
23pub use wasm::{ActorHandle, ActorSpawner, ActorSystem, JoinError};
24
25#[derive(Debug, Clone, Default)]
26pub struct ActorConfig {
27	pub mailbox_capacity: Option<usize>,
28	pub batch_size: Option<usize>,
29}
30
31impl ActorConfig {
32	pub fn new() -> Self {
33		Self::default()
34	}
35
36	pub fn mailbox_capacity(mut self, capacity: usize) -> Self {
37		self.mailbox_capacity = Some(capacity);
38		self
39	}
40
41	pub fn batch_size(mut self, size: usize) -> Self {
42		self.batch_size = Some(size);
43		self
44	}
45}