schema2000 0.1.0

Schema2000 is a crate derive a JSON schema from given JSON objects
Documentation
use crate::merge;
use crate::model::ObjectProperty;

pub fn merge_object_property(
    a: Option<&ObjectProperty>,
    b: Option<&ObjectProperty>,
) -> ObjectProperty {
    match (a, b) {
        (Some(a), None) => ObjectProperty {
            required: false,
            ..a.clone()
        },
        (None, Some(b)) => ObjectProperty {
            required: false,
            ..b.clone()
        },
        (Some(a), Some(b)) => ObjectProperty {
            required: a.required && b.required,
            node_type: merge::merge_node_type(a.clone().node_type, b.clone().node_type),
        },
        (None, None) => unreachable!(),
    }
}