forge/bin/icom/src/lib.rs
Jacob Schmidt ebfe77a340 feat: implement complete Forge framework with Rust/Redis backend and Arma 3 integration
Implemented features:
- High-performance Rust extension with Redis persistence
- Actor/player management with loadout, position, and state tracking
- Banking system with deposit, withdraw, and transfer operations
- Physical and virtual garage/locker systems for vehicle and equipment storage
- Organization management with member tracking and permissions
- Client-side UI with React-like state management
- Server-side event-driven architecture with CBA Events
- Security: Self-transfer prevention at multiple layers
- Logging system with per-module log files
- ICOM module for inter-server communication

Co-Authored-By: Warp <agent@warp.dev>
2026-01-04 12:52:15 -06:00

38 lines
1.0 KiB
Rust

//! Forge Internal Communication (ICOM) - Message Types
//!
//! This library exposes the shared `Message` enum used for communication
//! between the ICOM server and clients.
use serde::{Deserialize, Serialize};
pub mod client;
/// Message types for inter-server communication via ICOM
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type", rename_all = "snake_case")]
pub enum Message {
/// Register a server with a unique ID
Register { server_id: String },
/// Server successfully registered
Registered { session_id: String },
/// Send event to specific server
Event {
target_server: String,
event_name: String,
data: serde_json::Value,
},
/// Broadcast event to all servers (except sender)
Broadcast {
event_name: String,
data: serde_json::Value,
},
/// Response/acknowledgment
Ack {
message_id: Option<String>,
success: bool,
error: Option<String>,
},
/// Error message
Error { message: String },
}