#pragma once

// This file contains only Doxygen documentation for namespaces.
// No code should be added here.

/**
 * @namespace sdi_toolBox
 * @brief Root namespace for the sdi_toolBox library.
 */

/**
 * @namespace sdi_toolBox::common
 * @brief Cross-platform, reusable components shared across all sdi_toolBox modules.
 *
 * The common namespace groups utilities and building blocks that are not
 * tied to any specific platform or subsystem (desktop, embedded, etc.)
 * and can be freely used across the entire library.
 */

/**
 * @namespace sdi_toolBox::common::utils
 * @brief General-purpose utility functions shared across all sdi_toolBox modules.
 *
 * Provides lightweight, header-only helpers with no dependency on any
 * specific platform or subsystem.
 */

/**
 * @namespace sdi_toolBox::common::utils::hash
 * @brief Lightweight hashing utilities (FNV-1a implementations).
 *
 * Provides constexpr, header-only implementations of the FNV-1a hashing
 * algorithms (32-bit and 64-bit) with overloads that accept:
 * - std::span<const std::byte>
 * - std::string_view
 * - trivially-copyable POD objects
 *
 * These utilities are intended for fast, deterministic hashing of byte
 * sequences and simple value-based hashing of POD types. Implementations
 * are usable in constexpr contexts for string literals and other compile-time
 * scenarios.
 *
 * @note Use the POD overloads only for trivially-copyable types where
 *       hashing the raw memory representation is intended.
 * @see fnv1a(), fnv1a_64()
 */

/**
 * @namespace sdi_toolBox::desktop
 * @brief Desktop-specific components of the sdi_toolBox library.
 */

/**
 * @namespace sdi_toolBox::desktop::eventBus
 * @brief Lightweight thread-safe event bus for decoupled message passing.
 *
 * The eventBus namespace provides a publish/subscribe messaging system that
 * allows decoupled communication between components. It is built around three
 * core concepts:
 *
 * - **Bus** : the central dispatcher that maintains a routing table and
 *   delivers messages to the appropriate subscribers.
 * - **Node** : a subscriber attached to a Bus that can send and receive
 *   messages through its internal FIFO queue.
 * - **Message** : the base class for all messages circulating in the bus,
 *   identified by a unique @ref MessageTypeID.
 *
 * Nodes can subscribe to specific message types or to broadcast mode.
 * All operations are thread-safe.
 *
 * @see Bus
 * @see Node
 * @see Message
 */

/**
 * @namespace sdi_toolBox::desktop::utils
 * @brief General-purpose utility functions and helpers for desktop applications.
 */

/**
 * @namespace sdi_toolBox::desktop::utils::uuid
 * @brief Utility functions for UUID and unique identifier generation.
 *
 * Provides functions to generate unique identifiers in various formats:
 * - @ref uniqid() : timestamp-based unique identifier (PHP-style).
 * - @ref v4()     : randomly generated UUID (RFC 4122 version 4).
 * - @ref v7()     : time-ordered UUID (RFC 4122 version 7).
 */

/**
 * @namespace sdi_toolBox::desktop::wxWidgets
 * @brief Namespace containing desktop UI utilities built on top of the wxWidgets framework.
 */
