INNER CODE UNIT · Rust

parse

stjude-rust-labs/sprocket · crates/sprocket-test-types/src/lib.rs:80

    pub fn parse(source: &str) -> Result<(Self, Diagnostics), Diagnostics> {
        #[derive(Debug, Deserialize)]
        #[serde(transparent)]
        struct RawDocumentTests {
            pub targets: IndexMap<Spanned<String>, Vec<Spanned<RawTestDefinition>>>,
        }

        let mut diagnostics = Diagnostics::default();
        let raw: RawDocumentTests = match serde_saphyr::from_str(source) {
            Ok(map) => map,
            Err(_e) => {
                // TODO(serial): create nice diagnostics from serde-saphyr
                // errors
                diagnostics.add(Diagnostic::error(
                    "expected test document to be a YAML mapping from target names to test \
                     definitions",
                ));
                return Err(diagnostics);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…