Crates.io | env-vars-to-json |
lib.rs | env-vars-to-json |
version | 0.1.6 |
source | src |
created_at | 2023-06-05 05:00:42.017184 |
updated_at | 2023-06-06 03:39:01.984827 |
description | Convert environment variables to JSON |
homepage | |
repository | https://github.com/therealhieu/env-vars-to-json |
max_upload_size | |
id | 882800 |
size | 47,108 |
This crate provides methods to construct serde_json::Value
from environment variables.
Examples:
Given environemnt variables, with prefix PREFIX
and separator __
:
export PREFIX__INT_LIST__0=1
export PREFIX__INT_LIST__1=2
export PREFIX__STRUCT__INT=1
export PREFIX__STRUCT__STRING=string
export PREFIX__STRUCT__BOOL_LIST__0=true
export PREFIX__STRUCT__BOOL_LIST__1=false
export PREFIX__STRUCT__STRUCT__INT=1
export PREFIX__STRUCT__STRUCT__STRING=string
export PREFIX__STRUCT__STRUCT__BOOL_LIST__0=true
export PREFIX__STRUCT__STRUCT__BOOL_LIST__1=false
export PREFIX__BOOL_LIST__3=true
export PREFIX__STRUCT__FLOAT=1.1
export PREFIX__BOOL_LIST__0=false
export PREFIX__STRING_LIST__0=string0
Without default json:
use serde_json::json;
use env_vars_to_json::Parser;
let json = Parser::default()
.with_prefix("PREFIX")
.with_separator("__")
.parse_from_env()
.expect("Failed to parse environment variables");
assert_eq!(json, json!(
{
"int_list": [1, 2],
"struct": {
"int": 1,
"float": 1.1,
"string": "string",
"bool_list": [true, false],
"struct": {
"int": 1,
"string": "string",
"bool_list": [true, false]
}
},
"bool_list": [false, null, null, true],
"string_list": ["string0"]
}
))
With default json and filters (require feature filter
enabled):
use serde_json::json;
use env_vars_to_json::Parser;
let json = Parser::default()
.with_prefix("PREFIX")
.with_separator("__")
.with_include(&[".*STRUCT.*"])
.with_exclude(&[".*INT_LIST.*", "PREFIX__BOOL_LIST.*"])
.with_json(json!(
{
"float_list": [1.1],
"string_list": ["a", "b"],
"bool_list": [true, false]
}
))
.parse_from_env()
.expect("Failed to parse environment variables");
assert_eq!(json, json!(
{
"float_list": [1.1],
"struct": {
"int": 1,
"float": 1.1,
"string": "string",
"bool_list": [true, false],
"struct": {
"int": 1,
"string": "string",
"bool_list": [true, false]
}
},
"bool_list": [true, false],
"string_list": ["a", "b"]
}
));
Licensed under either of
at your option.