mavinspect 0.6.6

Library for parsing MAVLink XML definitions
Documentation
use mavinspect::parser::Inspector;
use mavinspect::protocol::Microservices;

fn default_dialect_paths() -> Vec<&'static str> {
    vec![
        "./message_definitions/standard",
    ]
}

#[test]
fn test_all_microservices_available() {
    let inspector = Inspector::builder()
        .set_sources(&default_dialect_paths())
        .build()
        .unwrap();
    let protocol = inspector.parse().unwrap();

    let all = protocol
        .get_dialect_by_canonical_name("all")
        .unwrap();

    assert!(all.microservices().contains(Microservices::HEARTBEAT));
    assert!(all.microservices().contains(Microservices::MISSION));
    assert!(all.microservices().contains(Microservices::PARAMETER));
    assert!(all.microservices().contains(Microservices::PARAMETER_EXT));
    assert!(all.microservices().contains(Microservices::COMMAND));
    assert!(all.microservices().contains(Microservices::MANUAL_CONTROL));
    assert!(all.microservices().contains(Microservices::CAMERA));
    assert!(all.microservices().contains(Microservices::GIMBAL_V1));
    assert!(all.microservices().contains(Microservices::GIMBAL_V2));
    assert!(all.microservices().contains(Microservices::ARM_AUTH));
    assert!(all.microservices().contains(Microservices::IMAGE_TRANSMISSION));
    assert!(all.microservices().contains(Microservices::FTP));
    assert!(all.microservices().contains(Microservices::LANDING_TARGET));
    assert!(all.microservices().contains(Microservices::PING));
    assert!(all.microservices().contains(Microservices::PATH_PLANNING));
    assert!(all.microservices().contains(Microservices::BATTERY));
    assert!(all.microservices().contains(Microservices::TERRAIN));
    assert!(all.microservices().contains(Microservices::TUNNEL));
    assert!(all.microservices().contains(Microservices::OPEN_DRONE_ID));
    assert!(all.microservices().contains(Microservices::HIGH_LATENCY));
    assert!(all.microservices().contains(Microservices::COMPONENT_METADATA));
    assert!(all.microservices().contains(Microservices::PAYLOAD));
    assert!(all.microservices().contains(Microservices::TRAFFIC_MANAGEMENT));
    assert!(all.microservices().contains(Microservices::EVENTS_INTERFACE));
    assert!(all.microservices().contains(Microservices::TIME_SYNC));

    assert!(all.microservices().is_all());
}