cf-env 0.1.6

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
Documentation

Cloud Foundry Environment

codecov Crates.io

Open in Gitpod

A small library to get you going in not 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

Usage

Getting this crate is easy as adding it to your dependencies

[dependencies]
cf-env = "0.1.6"

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();