summaryrefslogtreecommitdiff
path: root/src/codec
diff options
context:
space:
mode:
Diffstat (limited to 'src/codec')
-rw-r--r--src/codec/decode.rs7
-rw-r--r--src/codec/encode.rs6
2 files changed, 13 insertions, 0 deletions
diff --git a/src/codec/decode.rs b/src/codec/decode.rs
new file mode 100644
index 0000000..65f08b5
--- /dev/null
+++ b/src/codec/decode.rs
@@ -0,0 +1,7 @@
+use std::io::{self, Read};
+
+pub trait Decode {
+ fn decode(reader: &impl Read) -> io::Result<Self>
+ where
+ Self: Sized;
+}
diff --git a/src/codec/encode.rs b/src/codec/encode.rs
new file mode 100644
index 0000000..f23913b
--- /dev/null
+++ b/src/codec/encode.rs
@@ -0,0 +1,6 @@
+use std::io::{self, Write};
+
+pub trait Encode {
+ fn encode(&self, write: &mut dyn Write) -> io::Result<usize>;
+ fn encoded_size(&self) -> Option<usize>;
+}