Skip to main content

starlang_core/
lib.rs

1//! # starlang-core
2//!
3//! Core types for Starlang (Distributed Rust Erlang Abstract Machine).
4//!
5//! This crate provides the foundational types used throughout the Starlang ecosystem:
6//!
7//! - [`Atom`] - Interned string for efficient comparison
8//! - [`Pid`] - Process identifier
9//! - [`Ref`] - Unique reference for monitors and timers
10//! - [`ExitReason`] - Process termination reasons
11//! - [`Term`] - Trait for Erlang-like serializable terms (messages, keys, etc.)
12//! - [`SystemMessage`] - Internal system messages (Exit, Down, Timeout)
13//! - [`NodeId`], [`NodeName`], [`NodeInfo`] - Node identity for distribution
14
15#![deny(warnings)]
16#![deny(missing_docs)]
17
18mod exit_reason;
19mod message;
20pub mod node;
21mod pid;
22mod reference;
23mod system_message;
24
25// Re-export Atom from dream-atom for convenience
26pub use starlang_atom::{Atom, atom};
27
28pub use exit_reason::ExitReason;
29#[allow(deprecated)]
30pub use message::{DecodeError, Message, Term};
31pub use node::{NodeId, NodeInfo, NodeName};
32pub use pid::{Pid, current_creation, increment_creation};
33pub use reference::Ref;
34pub use system_message::SystemMessage;