1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//! Parameter conversion utilities.
//!
//! This module provides utilities for converting parameters between different
//! database-specific formats.
use crate;
/// Convert a slice of generic `RowValues` into database-specific parameters.
///
/// This function uses the `ParamConverter` trait to convert a set of parameters
/// into the format required by a specific database backend.
///
/// # Arguments
///
/// * `params` - The slice of `RowValues` to convert
/// * `mode` - Whether the parameters will be used for a query or execution
///
/// # Returns
///
/// The converted parameters, or an error if conversion fails
///
/// # Errors
///
/// Returns `SqlMiddlewareDbError` if:
/// - The parameter converter doesn't support the specified mode
/// - Parameter conversion fails for any of the provided values
///
/// # Example
///
/// ```rust,no_run
/// use sql_middleware::prelude::*;
/// use sql_middleware::postgres::Params as PostgresParams;
/// use sql_middleware::conversion::convert_sql_params;
///
/// fn convert_parameters<'a>(values: &'a [RowValues]) -> Result<PostgresParams<'a>, SqlMiddlewareDbError> {
/// let mode = ConversionMode::Query;
/// let postgres_params = convert_sql_params::<PostgresParams>(values, mode)?;
/// Ok(postgres_params)
/// }
/// ```