mirror-mirror 0.1.21

Reflection library for Rust
Documentation
use std::collections::HashMap;

use crate::{DescribeType, FromReflect, Reflect};

#[test]
fn option_uses_none_as_default() {
    #[derive(Reflect, Clone, Debug, PartialEq, Eq)]
    #[reflect(crate_name(crate))]
    struct Foo {
        x: Option<i32>,
    }

    let default = <Foo as DescribeType>::type_descriptor()
        .default_value()
        .unwrap();

    let foo = Foo::from_reflect(&default).expect("`from_reflect` failed");
    assert_eq!(foo, Foo { x: None });
}

#[test]
fn hash() {
    let map = HashMap::from([
        (1_i32.to_value(), "one"),
        ("foo".to_owned().to_value(), "two"),
    ]);

    assert_eq!(map.get(&1_i32.to_value()).unwrap(), &"one");
    assert_eq!(map.get(&"foo".to_owned().to_value()).unwrap(), &"two");
    assert!(map.get(&true.to_value()).is_none());
}