halo-sqlbuilder 1.0.0

Composable SQL builder and argument collector
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//! SqlValuer: minimal support for `database/sql/driver.Valuer`-like behavior.
//!
//! In Go, `driver.Valuer` can be invoked during interpolation to obtain the final serializable value.
//! Rust lacks a standard trait, so we provide a crate-local one for users/tests to implement.

use crate::value::SqlValue;

/// Error returned by `SqlValuer`.
#[derive(Debug, Clone, PartialEq, Eq, thiserror::Error)]
#[error("builder sql valuer error: {0}")]
pub struct ValuerError(pub String);

/// Trait for computing SQL values at interpolation time.
pub trait SqlValuer: dyn_clone::DynClone + std::fmt::Debug {
    fn value(&self) -> Result<SqlValue, ValuerError>;
}

dyn_clone::clone_trait_object!(SqlValuer);