char/avril
(wip) why'd you have to go and make things so complicaaaaated?
git clone https://git.t4t.associates/char/avril
7f4058a
main
1use std:: io; 2use std:: path:: PathBuf ; 3 4use avril_host:: environment:: Environment ; 5 6# [ derive ( Debug , thiserror :: Error )] 7pub enum Error { 8# [ error ( "Cannot load env file {}: {source}" , . path . display ())] 9Load { 10path : PathBuf , 11# [ source ] 12source : io:: Error , 13}, 14# [ error ( transparent )] 15Env ( # [ from ] io:: Error ), 16} 17 18pub fn load_values ( paths : & [ PathBuf ]) ->Result < Vec <( String , String )>, Error > { 19 avril_task:: load_env_values ( paths). map_err ( |error|match error{ 20 avril_task:: EnvError :: Load { path, source} =>Error :: Load { path, source}, 21}) 22} 23 24pub fn load ( paths : & [ PathBuf ]) ->Result < Environment , Error > { 25let defaults =Environment :: new ( load_values ( paths) ?) ?; 26Ok ( Environment :: from_process (). with_defaults ( defaults)) 27}