Comments (2)
So, roughly, I think this could work as follows:
- Construct a provider representing data to be written
- Construct a figment to read the config file
- Merge the provider into the figment
- Extract (complete) data from figment
- Write data
But:
- this writes out default values for all parameters not specified via the provider or input file
- this loses any comments in the source
- output order of file bears no resemblance to input order
There are two parts to fixing this:
- filtering data to that which needs to be written, which could perhaps be done with
Figment::find_metadata
but probably requires a new method or usingProvider::data
directly - merging this into the file, in order, and ideally including comments: requires using something like
toml_edit
instead of thetoml
crate
from figment.
Does anything close to that exist, or will I have to roll my own?
Not in this crate, at least not specifically. You could certainly serialize any structure into any kind of format and write it out (as the comment above), but that would mean rewriting the user's config with your own equivalent version which wouldn't maintain formatting. To do so while maintaining formatting is rather specialized, and crates like toml-edit
exist for that reason.
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.