statsig_rust/user/
unit_id.rs

1use crate::{dyn_value, DynamicValue};
2
3pub enum UnitID {
4    String(String),
5    Float(f64),
6    Int(i64),
7}
8
9impl From<&str> for UnitID {
10    fn from(value: &str) -> Self {
11        UnitID::String(value.into())
12    }
13}
14
15impl From<String> for UnitID {
16    fn from(value: String) -> Self {
17        UnitID::String(value)
18    }
19}
20
21impl From<&String> for UnitID {
22    fn from(value: &String) -> Self {
23        UnitID::String(value.clone())
24    }
25}
26
27impl From<f64> for UnitID {
28    fn from(value: f64) -> Self {
29        UnitID::Float(value)
30    }
31}
32
33impl From<i64> for UnitID {
34    fn from(value: i64) -> Self {
35        UnitID::Int(value)
36    }
37}
38
39impl From<UnitID> for DynamicValue {
40    fn from(value: UnitID) -> Self {
41        match value {
42            UnitID::String(s) => dyn_value!(s),
43            UnitID::Float(f) => dyn_value!(f),
44            UnitID::Int(i) => dyn_value!(i),
45        }
46    }
47}