6个版本
0.1.5 | 2023年3月20日 |
---|---|
0.1.4 | 2022年7月18日 |
#26 in #leveldb
用于 2 个crate(通过 leveldb-orm)
7KB
88 行
使用 LeveldbOrm
+ leveldb_key
在 leveldb-orm 中自动实现特质
#[derive(LeveldbOrm)]
#[leveldb_key(executable, args)]
struct Command {
pub executable: u8,
pub args: Vec<String>,
pub current_dir: Option<String>,
}
生成代码
impl<'a> leveldb_orm::KeyOrm<'a> for Command {
type KeyType = (u8, Vec<String>);
type KeyTypeRef = (&'a u8, &'a Vec<String>);
#[inline]
fn key(
&self,
) -> std::result::Result<leveldb_orm::EncodedKey<Self>, Box<dyn std::error::Error>> {
Self::encode_key((&self.executable, &self.args))
}
}
lib.rs
:
使用 LeveldbOrm
+ leveldb_key
在 leveldb-orm 中自动实现特质
use leveldb_orm::LeveldbOrm;
#[derive(LeveldbOrm)]
#[leveldb_key(executable, args)]
struct Command {
pub executable: u8,
pub args: Vec<String>,
pub current_dir: Option<String>,
}
// Generate code
// impl<'a> leveldb_orm::KeyOrm<'a> for Command {
// type KeyType = (u8, Vec<String>);
// type KeyTypeRef = (&'a u8, &'a Vec<String>);
// #[inline]
// fn key(
// &self,
// ) -> std::result::Result<leveldb_orm::EncodedKey<Self>, Box<dyn std::error::Error>> {
// Self::encode_key((&self.executable, &self.args))
// }
// }
依赖项
~300–760KB
~18K SLoC