diff --git a/src/database.rs b/src/database.rs index 81b701a..40220d0 100644 --- a/src/database.rs +++ b/src/database.rs @@ -1,6 +1,7 @@ use crate::addressing::Address; use crate::hash::{decode, hash, Hash, Hashable}; use crate::models; +use crate::util::LoggerSink; use actix::prelude::*; use actix_derive::Message; use anyhow::{anyhow, Result}; @@ -339,36 +340,6 @@ impl diesel::r2d2::CustomizeConnection } } -#[derive(Default)] -struct LoggerSink { - buffer: Vec, -} - -impl std::io::Write for LoggerSink { - fn write(&mut self, buf: &[u8]) -> std::io::Result { - self.buffer.extend(buf.iter()); - - if self.buffer.ends_with(b"\n") { - self.flush()?; - } - - Ok(buf.len()) - } - - fn flush(&mut self) -> std::io::Result<()> { - use std::str; - - debug!( - "{}", - str::from_utf8(self.buffer.as_mut()) - .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidData, e))? - .trim() - ); - - Ok(()) - } -} - pub struct OpenResult { pub pool: DbPool, pub new: bool, diff --git a/src/main.rs b/src/main.rs index 024c7a6..e032f6b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,6 +19,7 @@ mod hash; mod models; mod routes; mod schema; +mod util; const VERSION: &str = env!("CARGO_PKG_VERSION"); diff --git a/src/util.rs b/src/util.rs new file mode 100644 index 0000000..dba1949 --- /dev/null +++ b/src/util.rs @@ -0,0 +1,29 @@ +#[derive(Default)] +pub struct LoggerSink { + buffer: Vec, +} + +impl std::io::Write for LoggerSink { + fn write(&mut self, buf: &[u8]) -> std::io::Result { + self.buffer.extend(buf.iter()); + + if self.buffer.ends_with(b"\n") { + self.flush()?; + } + + Ok(buf.len()) + } + + fn flush(&mut self) -> std::io::Result<()> { + use std::str; + + debug!( + "{}", + str::from_utf8(self.buffer.as_mut()) + .map_err(|e| std::io::Error::new(std::io::ErrorKind::InvalidData, e))? + .trim() + ); + + Ok(()) + } +}