rbdc_sqlite/types/
bytes.rs

1use crate::decode::Decode;
2use crate::encode::{Encode, IsNull};
3use crate::type_info::DataType;
4use crate::types::Type;
5use crate::{SqliteArgumentValue, SqliteTypeInfo, SqliteValue};
6use rbdc::error::Error;
7
8impl Type for Vec<u8> {
9    fn type_info(&self) -> SqliteTypeInfo {
10        SqliteTypeInfo(DataType::Blob)
11    }
12}
13
14impl Encode for Vec<u8> {
15    fn encode(self, args: &mut Vec<SqliteArgumentValue>) -> Result<IsNull, Error> {
16        args.push(SqliteArgumentValue::Blob(self));
17
18        Ok(IsNull::No)
19    }
20}
21
22impl Decode for Vec<u8> {
23    fn decode(value: SqliteValue) -> Result<Self, Error> {
24        Ok(value.blob().to_owned())
25    }
26}