1#[derive(Debug, Clone, Default, PartialEq, Eq)]
2pub struct RequestOptions {
3 pub data_type: Option<String>,
4 pub omit_data_type: bool,
5 pub api_key: Option<String>,
6}
7
8pub fn resolve_request_options(opts: Option<&RequestOptions>) -> (String, bool, Option<String>) {
9 match opts {
10 None => (crate::config::DATA_TYPE.to_string(), true, None),
11 Some(options) if options.omit_data_type => ("".to_string(), false, options.api_key.clone()),
12 Some(options) => (
13 options
14 .data_type
15 .clone()
16 .unwrap_or_else(|| crate::config::DATA_TYPE.to_string()),
17 true,
18 options.api_key.clone(),
19 ),
20 }
21}