wasi_pg_client/types/
mod.rs1pub use postgres_types::{
9 Date, Field, IsNull, Kind, Oid, PgLsn, Timestamp, Type, WasNull, WrongType,
10};
11
12mod decode;
13mod encode;
14mod extern_types;
15mod format;
16mod oid;
17
18#[cfg(test)]
19mod tests;
20
21pub use decode::FromSql;
22pub use encode::ToSql;
23#[cfg(feature = "serde-json")]
24pub use extern_types::serde_json_impl::JsonB;
25pub use format::Format;
26pub use oid::*;
27
28#[derive(Debug, thiserror::Error)]
30pub enum Error {
31 #[error("unsupported type: {0}")]
32 UnsupportedType(String),
33 #[error("conversion error: {0}")]
34 Conversion(String),
35 #[error("invalid data format: {0}")]
36 InvalidDataFormat(String),
37 #[error("utf-8 error: {0}")]
38 Utf8Error(#[from] std::str::Utf8Error),
39 #[error("parse int error: {0}")]
40 ParseIntError(#[from] std::num::ParseIntError),
41 #[error("parse float error: {0}")]
42 ParseFloatError(#[from] std::num::ParseFloatError),
43 #[error("parse bool error: {0}")]
44 ParseBoolError(#[from] std::str::ParseBoolError),
45 #[error("parse datetime error: {0}")]
46 ParseDateTimeError(String),
47 #[error("unknown OID: {0}")]
48 UnknownOid(u32),
49 #[error("unsupported encoding format for type: {0}")]
50 UnsupportedEncoding(String),
51 #[error("postgres-types error: {0}")]
52 PostgresTypes(String),
53}
54
55impl From<std::io::Error> for Error {
56 fn from(e: std::io::Error) -> Self {
57 Error::Conversion(e.to_string())
58 }
59}
60
61pub type Result<T> = std::result::Result<T, Error>;
63
64pub fn type_from_oid(oid: Oid) -> Option<Type> {
66 Type::from_oid(oid)
67}