rbdc_sqlite/
encode.rs

1use crate::{SqliteArgumentValue, SqliteArguments};
2use rbdc::Error;
3use rbs::Value;
4
5pub trait Encode {
6    fn encode(self, args: &mut Vec<SqliteArgumentValue>) -> Result<IsNull, Error>;
7}
8
9/// The return type of [Encode::encode].
10pub enum IsNull {
11    /// The value is null; no data was written.
12    Yes,
13
14    /// The value is not null.
15    ///
16    /// This does not mean that data was written.
17    No,
18}
19
20impl SqliteArguments {
21    pub fn from_args(args: Vec<Value>) -> Result<Self, Error> {
22        let mut arg = SqliteArguments {
23            values: Vec::with_capacity(args.len()),
24        };
25        for x in args {
26            arg.add(x)?;
27        }
28        Ok(arg)
29    }
30}