from_multiple_with_options

Function from_multiple_with_options 

Source
pub fn from_multiple_with_options<T: DeserializeOwned>(
    input: &str,
    options: Options,
) -> Result<Vec<T>, Error>
Expand description

Deserialize multiple YAML documents into a vector with configurable Options.

Example: two Config documents with a custom budget.

use serde::Deserialize;
use serde_saphyr::DuplicateKeyPolicy;

#[derive(Debug, Deserialize, PartialEq)]
struct Config {
    name: String,
    enabled: bool,
    retries: i32,
}

let yaml = r#"
name: First
enabled: true
retries: 1
---
name: Second
enabled: false
retries: 2
"#;

let options = serde_saphyr::Options {
     budget: Some(serde_saphyr::Budget {
           max_anchors: 200,
           .. serde_saphyr::Budget::default()
     }),
    duplicate_keys: DuplicateKeyPolicy::FirstWins,
    .. serde_saphyr::Options::default()
};
let cfgs: Vec<Config> = serde_saphyr::from_multiple_with_options(yaml, options).unwrap();
assert_eq!(cfgs.len(), 2);
assert!(!cfgs[1].enabled);