sqlx_cloudflare_do/
value.rs1use std::borrow::Cow;
2
3use sqlx_cloudflare_core::{AsValue, Value as CoreValue};
4use sqlx_core::value::{Value, ValueRef};
5
6use crate::{Do, DoTypeInfo};
7
8#[derive(Debug, Clone, PartialEq)]
17pub struct DoValue(pub(crate) CoreValue);
18
19impl Value for DoValue {
20 type Database = Do;
21
22 fn as_ref(&self) -> DoValueRef<'_> {
23 DoValueRef(&self.0)
24 }
25
26 fn type_info(&self) -> Cow<'_, DoTypeInfo> {
27 Cow::Owned(self.0.type_info())
28 }
29
30 fn is_null(&self) -> bool {
31 self.0.is_null()
32 }
33}
34
35#[derive(Debug, Clone, Copy)]
37pub struct DoValueRef<'r>(pub(crate) &'r CoreValue);
38
39impl<'r> AsValue<'r> for DoValueRef<'r> {
40 fn as_value(&self) -> &'r CoreValue {
41 self.0
42 }
43}
44
45impl ValueRef<'_> for DoValueRef<'_> {
46 type Database = Do;
47
48 fn to_owned(&self) -> DoValue {
49 DoValue(self.0.clone())
50 }
51
52 fn type_info(&self) -> Cow<'_, DoTypeInfo> {
53 Cow::Owned(self.0.type_info())
54 }
55
56 fn is_null(&self) -> bool {
57 self.0.is_null()
58 }
59}