diff --git a/src/endpoints/options.rs b/src/endpoints/options.rs index 3b632e5..d4b12ec 100644 --- a/src/endpoints/options.rs +++ b/src/endpoints/options.rs @@ -1,4 +1,5 @@ use crate::hydrus_serializable::dictionary::HydrusDictionary; +use crate::hydrus_serializable::tag_filter::HydrusTagFilter; use crate::hydrus_serializable::wrapper::HydrusSerWrapper; use crate::Result; use crate::{Endpoint, FromJson, GetEndpoint}; @@ -34,7 +35,10 @@ impl FromJson for OptionsResponse { let server_message = service_options.take_by_str::("server_message")?; let update_period = service_options.take_by_str::("update_period")?; let nullification_period = service_options.take_by_str::("nullification_period")?; - let tag_filter = service_options.take_by_str::(&"tag_filter")?; + let tag_filter = service_options + .take_by_str::>(&"tag_filter")? + .inner + .0; Ok(Self { server_message, diff --git a/src/hydrus_serializable/mod.rs b/src/hydrus_serializable/mod.rs index 136bbce..26db458 100644 --- a/src/hydrus_serializable/mod.rs +++ b/src/hydrus_serializable/mod.rs @@ -7,6 +7,7 @@ use std::fmt::Formatter; use std::marker::PhantomData; pub mod dictionary; +pub mod tag_filter; pub mod wrapper; pub trait HydrusSerializable: DeserializeOwned { diff --git a/src/hydrus_serializable/tag_filter.rs b/src/hydrus_serializable/tag_filter.rs new file mode 100644 index 0000000..23ec34a --- /dev/null +++ b/src/hydrus_serializable/tag_filter.rs @@ -0,0 +1,12 @@ +use crate::hydrus_serializable::HydrusSerializable; +use serde::Deserialize; +use serde_json::Value; + +#[derive(Clone, Debug, Deserialize)] +pub struct HydrusTagFilter(pub Value); + +impl HydrusSerializable for HydrusTagFilter { + fn type_id() -> u64 { + 44 + } +}