aboutsummaryrefslogtreecommitdiffstats
path: root/src/yaml/write.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/yaml/write.rs')
-rw-r--r--src/yaml/write.rs18
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),
+ }
+ }
+}