mirror of
https://github.com/swc-project/swc.git
synced 2024-12-18 11:11:30 +03:00
8222cc075d
ast_node: - Add `#[ast_serde]`.
25 lines
447 B
Rust
25 lines
447 B
Rust
use serde_json::from_str;
|
|
use swc_common::ast_serde;
|
|
|
|
#[ast_serde]
|
|
#[derive(Debug, PartialEq)]
|
|
pub enum Ambiguous {
|
|
#[tag("A")]
|
|
A(A),
|
|
#[tag("B")]
|
|
B(B),
|
|
}
|
|
#[ast_serde("B")]
|
|
#[derive(Debug, PartialEq)]
|
|
pub struct A {}
|
|
|
|
#[ast_serde("B")]
|
|
#[derive(Debug, PartialEq)]
|
|
pub struct B {}
|
|
|
|
#[test]
|
|
fn deserialize() {
|
|
assert_eq!(A {}, from_str(r#"{"type": "A"}"#).unwrap());
|
|
assert_eq!(B {}, from_str(r#"{"type": "B"}"#).unwrap());
|
|
}
|