Comments (4)
Is it possible to make a compile time option to panic or return a Result?
from config-rs.
What if a Config
instance had a method like fn freeze(self) -> ConfigView
that returned a ConfigView
that only had read methods on it. Since it takes ownership of the config, the type and borrow checkers can enforce that the config is actually frozen.
That wouldn't work for the global config though. But maybe the global config should be removed (as mentioned in #17).
from config-rs.
Another thought to consider is how necessary this is.
#[derive(Deserialize)]
struct AppConfig { ... }
fn main() {
// Setup config via config::merge [...]
let c: AppConfig = config::get("$");
}
If something similar to the above is supported, perhaps we don't need a way to freeze the underlying config store.
@SergioBenitez I added this issue because you expressed a strong desire to have a frozen configuration. What do you think?
from config-rs.
Closing this because deserialization is essentially freeze
from config-rs.
Related Issues (20)
- Enum variant aliases don't work HOT 1
- failed type conversion in .ini file for serde flatten HOT 10
- Add a `cargo check-external-types` lint in CI
- Implement serde::Serialize for Config HOT 3
- New release/sync from master HOT 5
- Remove lazy_static HOT 1
- Nom is included in public API HOT 6
- bug: Using the `serde` attribute `rename` fails since `0.14.0` with a `missing field` error HOT 4
- 0.14 pulls in CC0 license HOT 2
- bug: config `0.14.0` only supports lowercase fields (regression since `0.13.4`) HOT 8
- ux: Lack of key and origin in ConfigError::Message leads to uncertain sources from serde error messages HOT 1
- using Environment source to get List of struct HOT 1
- Very old version of async_trait crate is used HOT 2
- Incorrect description of separator usage in Environment::with_prefix()
- ron Deserialize fails with enum with named fields HOT 2
- Unreachable code fault at config-0.14.0/src/file/format/yaml.rs:53:26 HOT 2
- rust-ini version mismatch in github code and crates.io HOT 3
- Maintainer wanted HOT 10
- cargo-audit reports that `yaml-rust` is unmaintained HOT 7
- yaml-rust is unmaintained - replace with yaml-rust2? HOT 1
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 config-rs.