statsig_rust/user/
unit_id.rs1use 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}