statsig_rust/user/
unit_id.rs1use crate::{dyn_value, user::user_value::UserValue, 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}
48
49impl From<UnitID> for UserValue {
50 fn from(value: UnitID) -> Self {
51 match value {
52 UnitID::String(value) => UserValue::from(value),
53 UnitID::Float(value) => UserValue::from(value),
54 UnitID::Int(value) => UserValue::from(value),
55 }
56 }
57}