diff options
Diffstat (limited to 'src/yaml/write.rs')
-rw-r--r-- | src/yaml/write.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/yaml/write.rs b/src/yaml/write.rs new file mode 100644 index 0000000..a1e52a5 --- /dev/null +++ b/src/yaml/write.rs @@ -0,0 +1,18 @@ +pub struct IoAdapter<'a, T: std::io::Write> { + inner: &'a mut T, +} + +impl<'a, T: std::io::Write> IoAdapter<'a, T> { + pub fn new(writer: &'a mut T) -> Self { + IoAdapter { inner: writer } + } +} + +impl<T: std::io::Write> std::fmt::Write for IoAdapter<'_, T> { + fn write_str(&mut self, s: &str) -> std::fmt::Result { + match self.inner.write_all(s.as_bytes()) { + Ok(()) => Ok(()), + Err(_) => Err(std::fmt::Error), + } + } +} |