1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
pub trait UniqueIdentifier: Send + Sync {
type Data;
}
#[cfg(test)]
mod tests {
use super::*;
use uid_derive::UID;
#[test]
fn uid() {
enum U {}
impl UniqueIdentifier for U {
type Data = f64;
}
let _: <U as UniqueIdentifier>::Data = 1f64;
}
#[test]
fn derive() {
#[derive(UID)]
enum U {}
let _: <U as UniqueIdentifier>::Data = vec![1f64];
}
#[test]
fn derive_uid() {
#[derive(UID)]
#[uid(data = "Vec<f32>")]
enum U {}
let _: <U as UniqueIdentifier>::Data = vec![1f32];
}
#[test]
fn derive_uid_err() {
#[derive(UID)]
#[uid(dat = "Vec<f32>")]
enum U {}
let _: <U as UniqueIdentifier>::Data = vec![1f32];
}
}