Skip to main content

Module convert

Module convert 

Source
Expand description

Converts bhtune-core’s serde-tagged enums to/from the plain TEXT values SQLite stores them as.

bhtune-core deliberately has zero non-serde dependencies (see its crate docs), so it cannot derive sqlx::Type itself, and Rust’s orphan rules mean bhtune-db cannot implement a foreign trait (sqlx::Type) for a foreign type (e.g. bhtune_core::ProcessType) either. Rather than defining a parallel sqlx-aware enum for every bhtune-core enum (eight of them, and rising), these two functions reuse each enum’s existing #[serde(rename_all = "snake_case")] implementation as the single source of truth for its wire form — the same string a ProcessType would serialize to over the CLI’s --output json or the web GUI’s HTTP API already matches what gets stored in a TEXT column.

Functions§

enum_to_text
Encodes a fieldless, serde-tagged enum as the bare string SQLite stores it as.
text_to_enum
Decodes a value read from column back into a fieldless, serde-tagged enum.