Crates.io | cf-env |
lib.rs | cf-env |
version | 0.1.9 |
source | src |
created_at | 2021-12-09 02:20:06.760887 |
updated_at | 2024-02-13 19:04:19.066197 |
description | Crate to parse Cloud Foundry environment variables with types and checks. Get you off that boilerplate code and care about what you actually need to code |
homepage | https://github.com/somehowchris/cf-env-rs |
repository | https://github.com/somehowchris/cf-env-rs |
max_upload_size | |
id | 494930 |
size | 45,224 |
A small library to get you going in no time with typed environment variables for you Cloud Foundry envirnoment.
Goals:
Remove boilerplate code for projects using cf
Use the power of rust to get the environment variables in a typed way
Give you the flexiblity to define custom values such as credential structures to meet your needs
Getting this crate is easy as adding it to your dependencies
[dependencies]
cf-env = "0.1.7"
After that, just check what you need and get it, you may wanna check out the docs.rs page. For example CF_INSTANCE_INDEX
let instance_index = cf_env::get_instance_index().unwrap();
Or for example if you need to get some credentials:
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
pub struct CustomCredentials {
pub password: String,
pub username: String,
pub host: String,
pub port: u16,
}
// After that you can use it
let service = cf_env::get_service_by_name::<CustomCredentials>("my_db").unwrap();
There is no need for typed credentials if you would like to parse it anyway and then deal with the Value
enum from serde_json
use serde_json::Value;
use cf_env::Service;
let service: Service<Value> = cf_env::get_service_by_name("my_db").unwrap();
let uri = service.credentials["uri"].as_str().unwrap();