diff --git a/src/lib.rs b/src/lib.rs index 4601c82..bba7377 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -147,7 +147,8 @@ impl Store { } /// store a buffer `value` at `key` - pub fn write(&mut self, key: &str, value: &[u8]) -> Result<(), Error> { + pub fn write>(&mut self, key: &str, value: V) -> Result<(), Error> { + let value = value.as_ref(); match self.append(key, value) { Err(Error::Write(WriteError::SpaceExhausted)) => { self.compact()?; diff --git a/src/test.rs b/src/test.rs index 55a2ed9..849bfb2 100644 --- a/src/test.rs +++ b/src/test.rs @@ -59,6 +59,20 @@ fn write_read() { assert_eq!(store.read("foo").unwrap().unwrap(), b"bar"); } +#[test] +fn write_read_str() { + let mut store = make_store(); + store.write("foo", "bar").unwrap(); + assert_eq!(store.read_str("foo").unwrap().unwrap(), "bar"); +} + +#[test] +fn write_read_str_utf8() { + let mut store = make_store(); + store.write("réseau", "point à point").unwrap(); + assert_eq!(store.read_str("réseau").unwrap().unwrap(), "point à point"); +} + #[test] fn write_read_value_str() { let mut store = make_store();