alef 0.115.2

Opinionated polyglot binding generator for Rust libraries
Documentation
{{ declaration }}
#[derive(serde::Deserialize)]
enum CoreKind {
    #[serde(rename = "function")]
    Function,
}
#[derive(serde::Deserialize)]
struct CoreCall {
    #[serde(rename = "type")]
    call_type: CoreKind,
}
fn main() {
    for key in ["type", "callType", "call_type"] {
        let input = serde_json::json!({key: "function"});
        let binding: SampleCall = serde_json::from_value(input).unwrap();
        assert_eq!(binding.call_type, "function", "wire key {key} must populate call_type");
        let wire = serde_json::to_value(binding).unwrap();
        assert_eq!(wire["type"], "function");
        assert!(wire.get("call_type").is_none());
        assert!(wire.get("callType").is_none());
        let core: CoreCall = serde_json::from_value(wire).unwrap();
        assert!(matches!(core.call_type, CoreKind::Function));
    }
}