diff --git a/conf.v b/conf.v index 9da2003..cfe137f 100644 --- a/conf.v +++ b/conf.v @@ -8,7 +8,7 @@ import toml // `${env.prefix}${field_name.to_upper()}${env.file_suffix}`, returning the // contents of the file instead if the latter. If both or neither exist, the // function returns an error. -fn get_env_var(prefix string, field_name string, file_suffix string) ?string { +fn get_env_var(prefix string, field_name string, file_suffix string) !string { env_var_name := '$prefix$field_name.to_upper()' env_file_name := '$prefix$field_name.to_upper()$file_suffix' env_var := os.getenv(env_var_name) @@ -49,7 +49,7 @@ pub struct LoadConfig { // file & environment variables. For each field, it will select either a value // given from an environment variable, a value defined in the config file or a // configured default if present, in that order. -pub fn load(conf LoadConfig) ?T { +pub fn load(conf LoadConfig) !T { mut res := T{} // Later, this could be read from an env var as well. @@ -58,7 +58,7 @@ pub fn load(conf LoadConfig) ?T { if os.exists(path) { // We don't use reflect here because reflect also sets any fields not // in the toml back to their zero value, which we don't want - doc := toml.parse_file(path)? + doc := toml.parse_file(path)! $for field in T.fields { s := doc.value(field.name) @@ -74,7 +74,7 @@ pub fn load(conf LoadConfig) ?T { } $for field in T.fields { - env_value := get_env_var(conf.prefix, field.name, conf.file_suffix)? + env_value := get_env_var(conf.prefix, field.name, conf.file_suffix)! // The value of an env var will always take precedence over the toml // file.