Enum figment::Source[][src]

#[non_exhaustive]pub enum Source {
    File(PathBuf),
    Code(&'static Location<'static>),
    Custom(String),
}

The source for a configuration value.

The Source of a given value can be determined via that value’s Metadata.source retrievable via the value’s Tag (via Value::tag() or via the magic value Tagged) and Figment::get_metadata().

Variants (Non-exhaustive)

Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
File(PathBuf)

A file: the path to the file.

Code(&'static Location<'static>)

Some programatic value: the source location.

Custom(String)

A custom source all-together.

Implementations

impl Source[src]

pub fn file_path(&self) -> Option<&Path>[src]

Returns the path to the source file if self.kind is Kind::File.

Example

use std::path::Path;
use figment::Source;

let source = Source::from(Path::new("a/b/c.txt"));
assert_eq!(source.file_path(), Some(Path::new("a/b/c.txt")));

pub fn code_location(&self) -> Option<&'static Location<'static>>[src]

Returns the location to the source code if self is Source::Code.

Example

use std::panic::Location;

use figment::Source;

let location = Location::caller();
let source = Source::Code(location);
assert_eq!(source.code_location(), Some(location));

pub fn custom(&self) -> Option<&str>[src]

Returns the custom source location if self is Source::Custom.

Example

use figment::Source;

let source = Source::Custom("ftp://foo".into());
assert_eq!(source.custom(), Some("ftp://foo"));

Trait Implementations

impl Clone for Source[src]

impl Debug for Source[src]

impl Display for Source[src]

Displays the source. Location and custom sources are displayed directly. File paths are displayed relative to the current working directory if the relative path is shorter than the complete path.

impl From<&'_ Path> for Source[src]

impl From<&'_ str> for Source[src]

impl From<&'static Location<'static>> for Source[src]

impl From<String> for Source[src]

impl PartialEq<Source> for Source[src]

impl StructuralPartialEq for Source[src]

Auto Trait Implementations

impl RefUnwindSafe for Source

impl Send for Source

impl Sync for Source

impl Unpin for Source

impl UnwindSafe for Source

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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