From 10b7219633acb24638fed39067e82fb7a2bbfd1d Mon Sep 17 00:00:00 2001 From: Bradlee Speice Date: Tue, 23 Apr 2019 13:17:42 -0400 Subject: [PATCH] Add a unit type for KStruct --- src/lib.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 860048f..5c4f35f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -28,6 +28,21 @@ pub trait KStruct<'a> { fn read(&mut self, stream: &mut S) -> KResult<'a, ()>; } +pub struct KStructUnit<'a>; +impl<'a> KStruct<'a> for KStructUnit<'a> { + type Parent = KStructUnit<'a>; + type Root = KStructUnit<'a>; + + fn new(_parent: Option<&'a Self::Parent>, _root: Option<&'a Self::Root>) -> Result> where + Self: Sized { + Ok(KStructUnit) + } + + fn read(&mut self, stream: &mut S) -> Result<(), KError<'a>> { + Ok(()) + } +} + pub trait KStream { fn is_eof(&self) -> io::Result; fn seek(&mut self, position: u64) -> io::Result<()>;