如何使用 Serde 反序列化 parking_lot::Mutex?
How to deserialize a parking_lot::Mutex with Serde?
我有一个包含在 Arc<Mutex>
中的内存结构 (obj
)。 Mutex
是 parking_lot crate 中 std::sync::Mutex
的改进版本。我需要反序列化包装对象 (obj
),但是,我得到一个错误:
the trait `_IMPL_DESERIALIZE_FOR_SecurityLevel::_serde::Deserialize<'_>` is not implemented for `lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, Obj>`
在我的 Cargo.toml 中,我有(特别是):
serde = { version = "1.0.89", features = ["rc"] }
parking_lot = {version = "0.8", features = ["nightly"]}
我该怎么办?是否有解决方法,或者我必须手动实施特征?
对 Serde 的支持已添加到 serde
下的 parking_lot 0.8 feature flag:
parking_lot = { version = "0.8", features = ["nightly", "serde"] }
使用它,您提供的代码可以编译。这也编译:
use parking_lot::Mutex;
use serde::{Deserialize, Serialize};
fn implements<T>()
where
Mutex<T>: for<'a> Deserialize<'a> + Serialize,
{
}
我有一个包含在 Arc<Mutex>
中的内存结构 (obj
)。 Mutex
是 parking_lot crate 中 std::sync::Mutex
的改进版本。我需要反序列化包装对象 (obj
),但是,我得到一个错误:
the trait `_IMPL_DESERIALIZE_FOR_SecurityLevel::_serde::Deserialize<'_>` is not implemented for `lock_api::mutex::Mutex<parking_lot::raw_mutex::RawMutex, Obj>`
在我的 Cargo.toml 中,我有(特别是):
serde = { version = "1.0.89", features = ["rc"] }
parking_lot = {version = "0.8", features = ["nightly"]}
我该怎么办?是否有解决方法,或者我必须手动实施特征?
对 Serde 的支持已添加到 serde
下的 parking_lot 0.8 feature flag:
parking_lot = { version = "0.8", features = ["nightly", "serde"] }
使用它,您提供的代码可以编译。这也编译:
use parking_lot::Mutex;
use serde::{Deserialize, Serialize};
fn implements<T>()
where
Mutex<T>: for<'a> Deserialize<'a> + Serialize,
{
}