EnvUtils

Struct EnvUtils 

Source
pub struct EnvUtils;
Expand description

Utility functions for safe environment variable handling.

Provides methods for safely accessing environment variables with proper validation and error handling. All methods trim whitespace and validate that values are not empty.

§Examples

use quetty_server::utils::EnvUtils;

// Check if a variable exists and has a value
if EnvUtils::has_non_empty_var("DATABASE_URL") {
    // Get the validated value
    let url = EnvUtils::get_validated_var("DATABASE_URL")?;
    println!("Database URL: {}", url);
}

// Get an optional variable
if let Some(debug_level) = EnvUtils::get_optional_var("DEBUG_LEVEL") {
    println!("Debug level: {}", debug_level);
}

Implementations§

Source§

impl EnvUtils

Source

pub fn has_non_empty_var(name: &str) -> bool

Checks if an environment variable exists and has a non-empty value.

This method checks both that the variable is set and that it contains non-whitespace content after trimming.

§Arguments
  • name - The name of the environment variable to check
§Returns

true if the variable exists and has a non-empty value, false otherwise

§Examples
use quetty_server::utils::EnvUtils;

if EnvUtils::has_non_empty_var("API_KEY") {
    println!("API key is configured");
} else {
    println!("API key is missing or empty");
}
Source

pub fn get_validated_var(name: &str) -> Result<String, EnvVarError>

Gets an environment variable with validation.

Retrieves the environment variable, trims whitespace, and validates that it contains a non-empty value. Returns detailed error information if the variable is missing, empty, or contains invalid UTF-8.

§Arguments
  • name - The name of the environment variable to retrieve
§Returns

The trimmed, validated environment variable value

§Errors

Returns EnvVarError if:

§Examples
use quetty_server::utils::EnvUtils;

match EnvUtils::get_validated_var("DATABASE_URL") {
    Ok(url) => println!("Database URL: {}", url),
    Err(e) => eprintln!("Configuration error: {}", e),
}
Source

pub fn get_optional_var(name: &str) -> Option<String>

Gets an optional environment variable.

Returns the validated environment variable value if it exists and is valid, or None if it’s missing, empty, or invalid. This is a convenience method for cases where the absence of an environment variable is acceptable.

§Arguments
  • name - The name of the environment variable to retrieve
§Returns

Some(value) if the variable exists and is valid, None otherwise

§Examples
use quetty_server::utils::EnvUtils;

let debug_mode = EnvUtils::get_optional_var("DEBUG_MODE")
    .unwrap_or_else(|| "false".to_string());

if let Some(custom_config) = EnvUtils::get_optional_var("CUSTOM_CONFIG") {
    println!("Using custom config: {}", custom_config);
} else {
    println!("Using default configuration");
}

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> SendBound for T
where T: Send,