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}