Skip to main content

Crate openscenario_rs

Crate openscenario_rs 

Source
Expand description

OpenSCENARIO-rs: Rust library for parsing and manipulating OpenSCENARIO files

This library provides a type-safe, serde-based implementation for parsing, manipulating, and generating OpenSCENARIO files in Rust.

§Features

  • Type-safe parsing - Full type system for OpenSCENARIO specification
  • Parameter support - Handle ${parameter} references with resolution
  • Validation - Schema validation and semantic checks (with validation feature)
  • Builder pattern - Programmatic scenario construction (with builder feature)

§Quick Start

use openscenario_rs::{parse_file, Result, OpenScenarioDocumentType};

fn main() -> Result<()> {
    let document = parse_file("scenario.xosc")?;
    println!("Author: {}", document.file_header.author.as_literal().unwrap());
     
    match document.document_type() {
        OpenScenarioDocumentType::Scenario => {
            if let Some(entities) = &document.entities {
                println!("Entities: {}", entities.scenario_objects.len());
            }
        }
        OpenScenarioDocumentType::ParameterVariation => {
            println!("Parameter variation file");
        }
        OpenScenarioDocumentType::Catalog => {
            println!("Catalog file");
        }
        OpenScenarioDocumentType::Unknown => {
            println!("Unknown document type");
        }
    }
    Ok(())
}

Re-exports§

pub use error::Error;
pub use error::Result;
pub use types::scenario::storyboard::FileHeader;
pub use types::scenario::storyboard::OpenScenario;
pub use types::scenario::storyboard::OpenScenarioDocumentType;
pub use types::scenario::storyboard::ScenarioDefinition;
pub use parser::xml::parse_catalog_from_file;
pub use parser::xml::parse_catalog_from_str;
pub use parser::xml::parse_from_file;
pub use parser::xml::parse_from_str;
pub use parser::xml::serialize_catalog_to_file;
pub use parser::xml::serialize_catalog_to_string;
pub use parser::xml::serialize_to_file;
pub use parser::xml::serialize_to_string;
pub use parser::choice_groups::parse_choice_group;
pub use parser::choice_groups::ChoiceGroupParser;
pub use parser::choice_groups::ChoiceGroupRegistry;
pub use parser::choice_groups::XsdChoiceGroup;
pub use expression::evaluate_expression;
pub use catalog::CatalogLoader;
pub use catalog::CatalogManager;
pub use catalog::CatalogResolver;
pub use catalog::ParameterSubstitutionEngine;
pub use catalog::ResolvedCatalog;

Modules§

catalog
Catalog system for OpenSCENARIO
error
Error types and error handling for the OpenSCENARIO library
expression
OpenSCENARIO expression parsing and evaluation engine
parser
XML parsing and deserialization for OpenSCENARIO documents
types
OpenSCENARIO type system

Functions§

parse_catalog_file
Parse a catalog file from the filesystem
parse_catalog_str
Parse a catalog document from a string
parse_file
Parse an OpenSCENARIO file from the filesystem
parse_str
Parse an OpenSCENARIO document from a string
serialize_str
Serialize an OpenSCENARIO document to XML string