mirror of
https://github.com/lifegpc/pixiv_downloader.git
synced 2026-07-08 01:32:41 +08:00
fix support for language switch
update document
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
use json::JsonValue;
|
||||
use std::ops::Deref;
|
||||
use std::sync::RwLockReadGuard;
|
||||
use std::sync::RwLockWriteGuard;
|
||||
|
||||
pub trait ToJson {
|
||||
fn to_json(&self) -> Option<JsonValue>;
|
||||
@@ -28,6 +31,27 @@ impl<T: ToJson> ToJson for &T {
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: ToJson> ToJson for Option<T> {
|
||||
fn to_json(&self) -> Option<JsonValue> {
|
||||
match self {
|
||||
Some(d) => { d.to_json() }
|
||||
None => { None }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: ToJson> ToJson for RwLockReadGuard<'_, T> {
|
||||
fn to_json(&self) -> Option<JsonValue> {
|
||||
self.deref().to_json()
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: ToJson> ToJson for RwLockWriteGuard<'_, T> {
|
||||
fn to_json(&self) -> Option<JsonValue> {
|
||||
self.deref().to_json()
|
||||
}
|
||||
}
|
||||
|
||||
pub trait FromJson where Self: Sized {
|
||||
type Err;
|
||||
fn from_json<T: ToJson>(v: T) -> Result<Self, Self::Err>;
|
||||
|
||||
Reference in New Issue
Block a user