[][src]Struct netlify_toml::Config

pub struct Config {
    pub build: Option<Build>,
    pub context: Option<HashMap<String, Context>>,
    pub redirects: Option<Vec<Redirect>>,
    pub headers: Option<Vec<Header>>,
    pub template: Option<Template>,
}

Config represents the global configuration within a netlify.toml file.

Fields

build: Option<Build>context: Option<HashMap<String, Context>>redirects: Option<Vec<Redirect>>headers: Option<Vec<Header>>template: Option<Template>

Implementations

impl Config[src]

pub fn scoped_env(self, ctx: &str, branch: &str) -> HashMap<String, String>[src]

Return a HashMap that aggregates all environment variables for a context within a git branch.

Arguments

ctx - The context name, for example deploy-preview, branch-deploy or production. branch - The deploy branch name, for example make-changes-to-my-site.

Example

let io = r#"
[build]
  command = "make site"
"#;

let config = netlify_toml::from_str(io).unwrap();
let env = config.scoped_env("deploy-preview", "new-styles");

pub fn scoped_redirects(&self, ctx: &str, branch: &str) -> Option<Vec<Redirect>>[src]

Return a list of aggregated redirects for a context within a branch.

If a context includes a redirect that's defined by the global list, the redirect is replaced in the global list to preserve this ordering. This match is based on the exact comparison of the origin value.

If a context includes a redirect that's not defined by the global list, the redirect is appended before any other redirect in the global list to give it a higher precedence.

Arguments

ctx - The context name, for example deploy-preview, branch-deploy or production. branch - The deploy branch name, for example make-changes-to-my-site.

Example

let io = r#"
[[redirects]]
  from = "/api/*"
  to = "https://production.api.com/:splat"

[[context.deploy-preview.redirects]]
  from = "/api/*"
  to = "https://staging.api.com/:splat"
"#;

let config = netlify_toml::from_str(io).unwrap();
let redirects = config.scoped_redirects("deploy-preview", "new-styles").expect("missing redirects");
assert_eq!(1, redirects.len());
let dest = redirects.first().and_then(|r| r.to.as_ref()).expect("missing destination");
assert_eq!("https://staging.api.com/:splat", dest.as_str());

pub fn scoped_headers(&self, ctx: &str, branch: &str) -> Option<Vec<Header>>[src]

Return a list of aggregated header rules for a context within a branch.

If a context includes a header rule that's defined by the global list, the header rule is replaced in the global list to preserve this ordering. This match is based on the exact comparison of the origin value.

If a context includes a header rule that's not defined by the global list, the header rule is appended before any other header rules in the global list to give it a higher precedence.

Arguments

ctx - The context name, for example deploy-preview, branch-deploy or production. branch - The deploy branch name, for example make-changes-to-my-site.

Example

    let io = r#"
    [[headers]]
    for = "/foo"
    values = {X-Foo = "Bar, Baz, Qux"}

    [[headers]]
    for = "/bar"
    values = {X-Foo = "Bar, Baz, Qux"}

    [[context.deploy-preview.headers]]
    for = "/foo"
    values = {X-BAR = "QUUX"}
"#;

    let config = netlify_toml::from_str(&io).unwrap();
    let headers = config
        .scoped_headers("deploy-preview", "new-styles")
        .expect("missing headers");
    assert_eq!(2, headers.len());

    let header = headers.first().unwrap();
    assert_eq!("/foo", header.path);
    assert!(header.headers.contains_key("X-BAR"));
    assert!(!header.headers.contains_key("X-Foo"));

Trait Implementations

impl Debug for Config[src]

impl Default for Config[src]

impl<'de> Deserialize<'de> for Config[src]

impl PartialEq<Config> for Config[src]

impl Serialize for Config[src]

impl StructuralPartialEq for Config[src]

Auto Trait Implementations

impl RefUnwindSafe for Config

impl Send for Config

impl Sync for Config

impl Unpin for Config

impl UnwindSafe for Config

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> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

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

impl<T, U> Into<U> for T where
    U: From<T>, 
[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.