[package] name = "leveva-message" version = "0.0.0" edition = "2021" publish = false description = "Building and parsing RFC 1459 / IRCv3 protocol lines — the wire Message type, its builder, and the parser, with grapheme-aware line-length capping." # Extracted from `leveva` (the IRC daemon) as a self-contained leaf library: the # message model is generic over `impl Display` for its parts, so it carries no # dependency on leveva's typed identifiers or server runtime. `leveva` re-exports it # as `leveva::message`. [lib] path = "src/lib.rs" [dependencies] # Grapheme-cluster segmentation (UAX #29): the non-tag body limit (`LINELEN`) is # measured in graphemes, not bytes, so a 2048-character line of multi-byte text is # fully supported. unicode-segmentation = "1" # A recorded message round-trips through a single JSON column (chat-history replay), # so `Message` and its tag map derive Serialize/Deserialize. serde = { version = "1", features = ["derive"] } [dev-dependencies] # Property tests: the parse/build round-trip and the serde-JSON round-trip. proptest = "1" serde_json = "1"