13 个版本 (5 个主要版本)
5.0.0 | 2024 年 1 月 22 日 |
---|---|
4.1.1 | 2024 年 1 月 15 日 |
4.1.0 | 2023 年 10 月 3 日 |
3.0.0 | 2023 年 9 月 10 日 |
0.1.0 | 2022 年 5 月 10 日 |
38 在 #dos
每月 195 次下载
在 21 个crate中使用 (3 个直接使用)
12KB
241 代码行
为 dos-actors 唯一标识符特性行推导宏
lib.rs
:
UID
一个实现 UniqueIdentifier 特性的推导宏。
示例
设置数据类型和端口号为默认值:分别为 Vec<f64>
和 50_000u32
use interface::UID;
#[derive(UID)]
enum Tag {}
数据类型和端口号设置如下
use interface::UID;
struct Q<T>(std::marker::PhantomData<T>);
enum ID {}
#[derive(UID)]
#[uid(data = Q<ID>, port = 9999)]
enum TU {}
别名是一种类型,它实现了另一个类型实现的相同特性行为的 Read、Write 或 Size 特性
use interface::{UID, Data, Read, Size, Update, Write};
struct Client {}
impl Update for Client {}
impl Write<TU> for Client {
fn write(&mut self) -> Option<Data<TU>> {
None
}
}
impl Read<TU> for Client {
fn read(&mut self, _data: Data<TU>) {}
}
impl Size<TU> for Client {
fn len(&self) -> usize {
1234
}
}
#[derive(UID)]
#[alias(name = TU, client = Client, traits = Write, Read, Size)]
enum TUT {}
依赖
~305–760KB
~18K SLoC