statsig-rust 0.19.2

Statsig Rust SDK for usage in multi-user server environments.
Documentation
use statsig_rust::statsig_types::Layer;

#[test]
fn test_layer_serialization() {
    let raw_value = r#"{
        "__disable_exposure": false,
        "__evaluation": {
            "explicit_parameters": [],
            "group": "override",
            "id_type": "",
            "is_device_based": false,
            "name": "test_layer",
            "rule_id": "override",
            "secondary_exposures": [],
            "undelegated_secondary_exposures": [],
            "value": { "foo": "bar" }
        },
        "__user": { "userID": "a-user" },
        "__value": { "foo": "bar" },
        "__version": null,
        "allocated_experiment_name": null,
        "details": {
            "lcut": 1729873603830,
            "reason": "LocalOverride:Recognized",
            "received_at": 1750806236320
        },
        "group_name": null,
        "id_type": "",
        "name": "test_layer",
        "rule_id": "override",
        "is_experiment_active": false
    }"#;

    let result = serde_json::from_str::<Layer>(raw_value);
    assert_eq!(result.as_ref().err().map(|x| x.to_string()), None);
    assert_eq!(result.ok().map(|x| x.name), Some("test_layer".to_string()));
}