1use serde::{Serialize, Serializer};
4
5pub struct PgBlob {
7 dat: Vec<u8>,
8}
9
10impl Serialize for PgBlob {
11 fn serialize<S>(&self, ser: S) -> Result<S::Ok, S::Error>
12 where
13 S: Serializer,
14 {
15 let s: &[u8] = &self.dat;
16 ser.serialize_bytes(s)
17 }
18}
19
20impl From<Vec<u8>> for PgBlob {
21 fn from(v: Vec<u8>) -> Self {
22 Self { dat: v }
23 }
24}
25
26impl From<&[u8]> for PgBlob {
27 fn from(s: &[u8]) -> Self {
28 Self::from(Vec::from(s))
29 }
30}
31
32impl From<&str> for PgBlob {
33 fn from(s: &str) -> Self {
34 let b: &[u8] = s.as_bytes();
35 Self::from(b)
36 }
37}