Comments (4)
Ideally, it would be style-preserving too 😄
from figment.
That is, set a nested value using the path to the key.
Yes. This is the way string keys work everywhere. See the Serialized
provider docs as an example. For instance, (key, value)
, built using Serialize
, works as expected. That is, figment.merge(("a.b", 12))
replaces b
in a
with 12
.
what's the best way to approach this using your library?
Parse the CLI value(s) using something like clap
, then simply do something like:
// The value can be anything `Serialize`. `figment::value::Value` is a good choice.
let overrides: Vec<(String, figment::value::Value)> = /* result from CLI parsing */;
let mut figment = /* whatever your figment looks like */;
for override in overrides {
figment = figment.merge(override);
}
You can even add provenance information to these CLI values by implementing a custom provider, which will give you perfect error messages should something go wrong, but it's not required.
from figment.
ah nice, that's quite powerful. Did I miss this in the docs?
from figment.
It is documented, though perhaps not as well as it should be. I've added this detail to more places in the docs.
from figment.
Related Issues (20)
- Clippy and `rustfmt` HOT 2
- Question: Conventions to overwrite nested values with env vars HOT 3
- Question: How to load vector of struct with `Env` provider? HOT 2
- Question: Serialize the profile name when extracting HOT 5
- Pattern for mixing required fields and optional fields with defaults HOT 3
- There's no way to unset an `Option` field from env variables HOT 2
- Support FromStr/Display serialization and deserialization HOT 3
- serde(flatten) breaks metadata propagation in errors HOT 4
- Override values from configuration from CLI HOT 11
- Pattern advice: How to use config file with required field without setting it? HOT 4
- Jail create_file in subdir HOT 2
- Write back to config file. HOT 3
- [FEATURE REQUEST]: Write a jail file with non-utf8 contents
- Preserve Toml File map Order HOT 1
- Deserializing yaml structure with enumeration fails HOT 5
- Allow Value::find to traverse arrays HOT 1
- YAML Nested Values Are Not Usable Via Environment Variables with `Env::split` HOT 2
- Option _not_ to check parent directories for configuration files HOT 1
- [Feature Request] allow to override default name for environment variables HOT 5
- FigmentBuilder
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from figment.