use HashMap;
use crateResult;
use crateTopic;
/// Publish messages to their topic's main queue.
///
/// The destination is derived from `T::topology().queue()` — callers never
/// specify queue names directly. For sequenced topics, the publisher
/// automatically routes via `T::SEQUENCE_KEY_FN` when `topology.sequencing()`
/// is configured.
///
/// This trait is intentionally **not object-safe** — methods are generic
/// over `T: Topic`. Backends are always concrete types.