File: dereference.rs

package info (click to toggle)
rust-schemars 0.8.22-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,324 kB
  • sloc: makefile: 2
file content (23 lines) | stat: -rw-r--r-- 642 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use schemars::{r#gen::SchemaGenerator, JsonSchema};
use std::ptr;

#[allow(dead_code)]
#[derive(JsonSchema)]
struct Struct {
    foo: i32,
    bar: bool,
}

#[test]
fn dereference_struct() {
    let mut generator = SchemaGenerator::default();
    let struct_ref_schema = generator.subschema_for::<Struct>();
    let struct_schema = generator.definitions().get(&<Struct>::schema_name()).unwrap();

    assert!(struct_ref_schema.is_ref());
    assert!(!struct_schema.is_ref());

    let dereferenced = generator.dereference(&struct_ref_schema);
    assert!(dereferenced.is_some());
    assert!(ptr::eq(dereferenced.unwrap(), struct_schema));
}