#![no_std]
#![forbid(unsafe_code)]
#![warn(missing_docs)]
extern crate alloc;
use alloc::{
vec::Vec,
collections::{BTreeMap, VecDeque},
boxed::Box,
string::String,
};
use core::{
time::Duration,
fmt,
};
#[cfg(feature = "serde")]
use serde::{Serialize, Deserialize};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
mod types;
mod error;
mod agent;
mod task;
mod memory;
mod channel;
mod orchestrator;
mod scheduler;
mod coordinator;
pub use types::*;
pub use error::*;
pub use agent::*;
pub use task::*;
pub use memory::*;
pub use channel::*;
pub use orchestrator::*;
pub use scheduler::*;
pub use coordinator::*;
pub type Result<T> = core::result::Result<T, SwarmError>;
pub use coordinator::SwarmCoordinator as Coordinator;
pub use scheduler::TaskScheduler as Scheduler;
pub use memory::MemoryManager as MemoryPool;
pub use channel::CommunicationHub as ChannelManager;
pub use memory::MemoryManager as SwarmMemoryPool;
pub use channel::CommunicationHub as SwarmChannelManager;