diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-01-10 13:12:50 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-01-10 13:12:50 +0100 |
commit | 8779fffeb41f8c00323814dbbbb17ab95b91eff3 (patch) | |
tree | c07de480d11a56b81aea6f88ad70efe27c391a5e | |
parent | f50a039e1959a9063e0aef7497edd4cab798787c (diff) |
Simplify implementation
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | src/read.rs | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/src/read.rs b/src/read.rs index 0d18447..4779ce5 100644 --- a/src/read.rs +++ b/src/read.rs @@ -6,13 +6,7 @@ use crate::object::*; use crate::tokenizer::Token; use crate::query::Query; -pub trait Read<'doc> : Object { - fn read(&'doc self, query: &Query) -> Result<Option<&'doc Self>>; - fn read_mut(&'doc mut self, query: &Query) -> Result<Option<&'doc mut Self>>; -} - -#[cfg(feature = "backend_toml")] -impl<'doc> Read<'doc> for toml::Value { +pub trait Read<'doc> : Object + Sized { fn read(&'doc self, query: &Query) -> Result<Option<&'doc Self>> { query_with_token(self, query.token()) } @@ -22,16 +16,11 @@ impl<'doc> Read<'doc> for toml::Value { } } -#[cfg(feature = "backend_serde_json")] -impl<'doc> Read<'doc> for serde_json::Value { - fn read(&'doc self, query: &Query) -> Result<Option<&'doc Self>> { - query_with_token(self, query.token()) - } +#[cfg(feature = "backend_toml")] +impl<'doc> Read<'doc> for toml::Value { } - fn read_mut(&'doc mut self, query: &Query) -> Result<Option<&'doc mut Self>> { - query_with_token_mut(self, query.token()) - } -} +#[cfg(feature = "backend_serde_json")] +impl<'doc> Read<'doc> for serde_json::Value { } fn query_with_token<'doc, O>(obj: &'doc O, token: &Token) -> Result<Option<&'doc O>> where O: Object |