1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use std::collections::BTreeMap;

use super::to_optional_string::ToOptionalString;

pub trait ToEnvs {
    fn to_envs(self) -> BTreeMap<String, Option<String>>;
}

impl ToEnvs for BTreeMap<String, Option<String>> {
    fn to_envs(self) -> BTreeMap<String, Option<String>> {
        self
    }
}

impl<T: ToString, D: ToOptionalString, const Z: usize> ToEnvs for [(T, D); Z] {
    fn to_envs(self) -> BTreeMap<String, Option<String>> {
        BTreeMap::from(self.map(|t| (t.0.to_string(), t.1.to_optional_string())))
    }
}

impl ToEnvs for Option<BTreeMap<String, Option<String>>> {
    fn to_envs(self) -> BTreeMap<String, Option<String>> {
        BTreeMap::new()
    }
}