rconsole 1.1.0

A WebSocket-based logging library for Rust - send structured logs to NConsole desktop app
Documentation
//! # rconsole - WebSocket-based logging library for Rust
//!
//! A logging library that sends structured log messages to the
//! [Server Log](https://github.com/nicholasgasior/nconsole) app via WebSocket.
//!
//! Mirrors the API of the Flutter `nconsole` package, providing
//! `console.log`/`info`/`warn`/`error`/`group`/`clear` equivalents.
//!
//! ## Architecture
//!
//! ```text
//! ┌──────────────┐
//! │   NConsole   │  ← Public API façade (services layer)
//! └──────┬───────┘
//!//! ┌──────▼───────┐
//! │  WebConsole  │  ← Singleton, manages state & dispatch (console layer)
//! └──────┬───────┘
//!//! ┌──────▼───────┐
//! │ WsConnection │  ← WebSocket transport (infrastructure layer)
//! └──────────────┘
//! ```
//!
//! ## Quick Start
//!
//! ```no_run
//! use rconsole::*;
//! use serde_json::json;
//!
//! // Point to your Server Log app
//! NConsole::set_uri("192.168.1.100");
//!
//! // Log with mixed types — like console.log(a, b, c) in JavaScript
//! nlog!("Hello from Rust!", 42, true, json!({"key": "val"}));
//! ninfo!("Server started on port", 8080);
//! nwarn!("Memory usage:", 85.5, "%");
//! nerror!("Connection failed", json!({"code": 500}));
//!
//! // Grouped logging
//! ngroup!("HTTP Request");
//! nlog!("GET", "/api/users");
//! nlog!("Status:", 200);
//! ngroup_end!();
//!
//! // Clear console
//! nclear!();
//! ```
//!
//! ## Thread Safety
//!
//! All public methods on `NConsole` are thread-safe. The internal
//! `WebConsole` singleton is protected by a `Mutex`.

// Macros must be declared before other modules that use them
#[macro_use]
mod macros;

pub mod console;
pub mod domain;
pub mod infrastructure;
pub mod services;

// Re-export the most commonly used types at crate root
pub use console::ClientInfo;
pub use domain::{LogArg, LogType};
pub use services::NConsole;