use crate::arguments::SqliteArgumentsBuffer; use crate::{Sqlite, SqliteTypeInfo, SqliteValueRef}; use sqlx_core::decode::Decode; use sqlx_core::encode::{Encode, IsNull}; use sqlx_core::error::BoxDynError; use sqlx_core::types::{Text, Type}; use std::fmt::Display; use std::str::FromStr; impl Type for Text { fn type_info() -> SqliteTypeInfo { >::type_info() } fn compatible(ty: &SqliteTypeInfo) -> bool { >::compatible(ty) } } impl Encode<'_, Sqlite> for Text where T: Display, { fn encode_by_ref(&self, buf: &mut SqliteArgumentsBuffer) -> Result { Encode::::encode(self.0.to_string(), buf) } } impl<'r, T> Decode<'r, Sqlite> for Text where T: FromStr, BoxDynError: From<::Err>, { fn decode(value: SqliteValueRef<'r>) -> Result { Ok(Self(value.with_temp_text(|text| text.parse::())??)) } }