3 releases

0.1.2 Apr 29, 2024
0.1.1 Apr 17, 2023
0.1.0 Apr 17, 2023

#67 in #mini


Used in mini-config

MIT license

5KB

mini-config-rs

Minimalistic Dynamic Config for Rust

what's new on 0.1.3?

memory enhancement "again", tested with 32 million get simultaneously only consume 1.009 KB. added new feature get_str() to get by refrence (reduce 2x from get() because of double String usage) now it's only 1x usage of String

SomeEnum::Data.get_str() -> &str

no breaking changes introduced from 0.1.2, you can upgrade without worries!

why this exist?

i've tired to try rust config out there. but it's too big and heavy for my small project.
and for some reason, there is much feature which i did not use at all.
so i decided to create a minimalistic config which uses enum to store data into memory.
and retrive it using enum directly.

how to use?

please add derive feature into Cargo.toml
to enable Configure derive.

[dependencies]
mini-config = { version="*", features=["derive"]}

it can be used directly on main.

use mini_config::Configure;

// Debug and Clone "MUST" present.
#[derive(Debug,Clone,Configure)]
pub enum SampleConfig {
    VariableOne
}

fn main(){
    // set value (as &str)
    SampleConfig::VariableOne.set("string"); 
    
    // get value (as String)
    let retrived_value = SampleConfig::VariableOne.val();
}

if you want to call it in other function? just import the enum.

use crate::SampleConfig;

and you good to go using .set("new val") if you want to re-initialize
or .val() if you want to get the data in that particular function.

best practice? please refer to example folder at github repository.

Dependencies

~1.5MB
~36K SLoC