summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-01-10 13:12:50 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-01-10 13:12:50 +0100
commit8779fffeb41f8c00323814dbbbb17ab95b91eff3 (patch)
treec07de480d11a56b81aea6f88ad70efe27c391a5e
parentf50a039e1959a9063e0aef7497edd4cab798787c (diff)
Simplify implementation
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--src/read.rs21
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