데이터베이스와 함께 작동하며 저장할 수있는 것을 나타내는 특성을 작성하려고합니다. 이를 위해 형질은 serde::Deserialize
형질을 포함하는 다른 것들로부터 물려받습니다.평생을 필요로하는 특성을 가진 Rust의 제네릭 함수를 어떻게 만듭니 까?
error[E0106]: missing lifetime specifier
--> src/database.rs:180:24
|
180 | pub fn put<'de, S: Storable>(&mut self, obj: &'de S) -> Result<(), String> {
| ^^^^^^^^ expected lifetime parameter
Minimal example on the playground.
방법 : 나는 다음과 같은 오류를 얻고있다 그러나
pub fn put<'de, S: Storable>(&mut self, obj: &'de S) -> Result<(), String> {
...
let value = bincode::serialize(obj, bincode::Infinite);
...
db.put(key, value).map_err(|e| e.to_string())
}
:
trait Storable<'de>: Serialize + Deserialize<'de> {
fn global_id() -> &'static [u8];
fn instance_id(&self) -> Vec<u8>;
}
struct Example {
a: u8,
b: u8
}
impl<'de> Storable<'de> for Example {
fn global_id() -> &'static [u8] { b"p" }
fn instance_id(&self) -> Vec<u8> { vec![self.a, self.b] }
}
다음, 나는 일반적인 기능을 사용하여이 데이터를 쓰기 위해 노력하고 있어요 나는 이것을 해결할 것인가?