@@ -7,9 +7,10 @@ mod errors;
7
7
mod hash;
8
8
mod vec;
9
9
10
+ use std:: io;
11
+
10
12
pub use serde:: { de, ser} ;
11
13
pub use serde_bytes;
12
- pub use serde_ipld_dagcbor:: { from_reader, from_slice, to_writer} ;
13
14
14
15
pub use self :: bytes:: * ;
15
16
pub use self :: cbor:: * ;
@@ -29,8 +30,6 @@ pub mod repr {
29
30
pub use serde_repr:: { Deserialize_repr , Serialize_repr } ;
30
31
}
31
32
32
- // TODO: upstream this. Upstream doesn't allow encoding unsized types (e.g., slices).
33
-
34
33
/// Serializes a value to a vector.
35
34
pub fn to_vec < T > ( value : & T ) -> Result < Vec < u8 > , Error >
36
35
where
40
39
value. serialize ( & mut serde_ipld_dagcbor:: Serializer :: new ( & mut vec) ) ?;
41
40
Ok ( vec)
42
41
}
42
+
43
+ /// Decode a value from CBOR from the given reader.
44
+ pub fn from_reader < T , R > ( reader : R ) -> Result < T , Error >
45
+ where
46
+ T : de:: DeserializeOwned ,
47
+ R : io:: Read ,
48
+ {
49
+ serde_ipld_dagcbor:: from_reader ( reader) . map_err ( Into :: into)
50
+ }
51
+
52
+ /// Decode a value from CBOR from the given slice.
53
+ pub fn from_slice < ' a , T > ( slice : & ' a [ u8 ] ) -> Result < T , Error >
54
+ where
55
+ T : de:: Deserialize < ' a > ,
56
+ {
57
+ serde_ipld_dagcbor:: from_slice ( slice) . map_err ( Into :: into)
58
+ }
59
+
60
+ /// Encode a value as CBOR to the given writer.
61
+ pub fn to_writer < W , T > ( writer : W , value : & T ) -> Result < ( ) , Error >
62
+ where
63
+ W : io:: Write ,
64
+ T : ser:: Serialize ,
65
+ {
66
+ serde_ipld_dagcbor:: to_writer ( writer, value) . map_err ( Into :: into)
67
+ }
0 commit comments