/
germanubis
/
sqlx
Обзор
Документация
Войти
/
germanubis
/
sqlx
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
sqlx-postgres/src/types/text.rs
40 строк
1008 B
Austin Bonander
groundwork for 0.9.0-alpha.1 (#3821)
02 июн 2025, 07:09
Не верифицирован
02 июн 2025, 07:09
9079720
Код
Авторство
О чём код?
use crate::{PgArgumentBuffer, PgTypeInfo, PgValueRef, Postgres}; 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; use std::io::Write; impl<T> Type<Postgres> for Text<T> { fn type_info() -> PgTypeInfo { <String as Type<Postgres>>::type_info() } fn compatible(ty: &PgTypeInfo) -> bool { <String as Type<Postgres>>::compatible(ty) } } impl<T> Encode<'_, Postgres> for Text<T> where T: Display, { fn encode_by_ref(&self, buf: &mut PgArgumentBuffer) -> Result<IsNull, BoxDynError> { write!(**buf, "{}", self.0)?; Ok(IsNull::No) } } impl<'r, T> Decode<'r, Postgres> for Text<T> where T: FromStr, BoxDynError: From<<T as FromStr>::Err>, { fn decode(value: PgValueRef<'r>) -> Result<Self, BoxDynError> { let s: &str = Decode::<Postgres>::decode(value)?; Ok(Self(s.parse()?)) } }