optify 1.3.1

Simplifies getting the right configuration options for a process using pre-loaded configurations from files (JSON, YAML, etc.) to manage options for experiments or flights. This library is mainly made to support building implementations for other languages such as Node.js, Python, and Ruby. It is not meant to be consumed directly yet.
Documentation
use crate::configurable_string::ConfigurableString;

pub(crate) fn extract_configurable_string_files_from_config(
    raw_config: &serde_json::Value,
    configurable_value_pointers: &[String],
) -> Vec<String> {
    let mut configurable_string_files = Vec::new();
    let options_obj = match raw_config.get("options") {
        Some(v) => v,
        None => return configurable_string_files,
    };

    for pointer in configurable_value_pointers {
        if let Some(configurable_value) = options_obj.pointer(pointer) {
            if let Ok(cs) = serde_json::from_value::<ConfigurableString>(configurable_value.clone())
            {
                configurable_string_files.extend(cs.get_referenced_files());
            }
        }
    }

    configurable_string_files
}