[][src]Struct rocket::Config

pub struct Config {
    pub environment: Environment,
    pub address: String,
    pub port: u16,
    pub workers: u16,
    pub keep_alive: Option<u32>,
    pub log_level: LoggingLevel,
    pub limits: Limits,
    pub extras: HashMap<String, Value>,
    pub config_path: PathBuf,
    // some fields omitted
}

Structure for Rocket application configuration.

Usage

A Config structure is typically built using Config::build() and builder methods on the returned ConfigBuilder structure:

use rocket::config::{Config, Environment};

let config = Config::build(Environment::Staging)
    .address("127.0.0.1")
    .port(700)
    .workers(12)
    .unwrap();

General Configuration

For more information about Rocket's configuration, see the config module documentation.

Fields

The environment that this configuration corresponds to.

The address to serve on.

The port to serve on.

The number of workers to run concurrently.

Keep-alive timeout in seconds or None if disabled.

How much information to log.

Streaming read size limits.

Extra parameters that aren't part of Rocket's core config.

The path to the configuration file this config belongs to.

Methods

impl Config
[src]

Returns a builder for Config structure where the default parameters are set to those of env. The root configuration directory is set to the current working directory.

Panics

Panics if the current directory cannot be retrieved.

Example

use rocket::config::{Config, Environment};

let config = Config::build(Environment::Staging)
    .address("127.0.0.1")
    .port(700)
    .workers(12)
    .unwrap();

Returns a Config with the parameters for the environment env. The root configuration directory is set to the current working directory.

Errors

If the current directory cannot be retrieved, a BadCWD error is returned.

Example

use rocket::config::{Config, Environment};

let mut my_config = Config::new(Environment::Production).expect("cwd");
my_config.set_port(1001);

Returns a Config with the default parameters of the active environment as determined by the ROCKET_ENV environment variable.

If ROCKET_ENV is not set, the returned Config uses development environment parameters when the application was compiled in debug mode and production environment parameters when the application was compiled in release mode. The root configuration directory is set to the current working directory.

This is equivalent to Config::new(Environment::active()?).

Errors

If the current directory cannot be retrieved, a BadCWD error is returned. Returns a BadEnv error if ROCKET_ENV is set and contains an invalid or unknown environment name.

Example

use rocket::config::Config;

let mut my_config = Config::active().unwrap();
my_config.set_port(1001);

Returns a Config with the default parameters of the development environment. The root configuration directory is set to the current working directory.

Errors

If the current directory cannot be retrieved, a BadCWD error is returned.

Example

use rocket::config::{Config, Environment};

let mut my_config = Config::development().unwrap();
my_config.set_port(1001);

Returns a Config with the default parameters of the staging environment. The root configuration directory is set to the current working directory.

Errors

If the current directory cannot be retrieved, a BadCWD error is returned.

Example

use rocket::config::{Config, Environment};

let mut my_config = Config::staging().expect("cwd");
my_config.set_port(1001);

Returns a Config with the default parameters of the production environment. The root configuration directory is set to the current working directory.

Errors

If the current directory cannot be retrieved, a BadCWD error is returned.

Example

use rocket::config::{Config, Environment};

let mut my_config = Config::production().expect("cwd");
my_config.set_port(1001);

Sets the root directory of this configuration to root.

Example

use rocket::config::{Config, Environment};

let mut config = Config::new(Environment::Staging)?;
config.set_root("/tmp/my_app");

assert_eq!(config.root(), Path::new("/tmp/my_app"));

Sets the address of self to address.

Errors

If address is not a valid IP address or hostname, returns a BadType error.

Example

use rocket::config::{Config, Environment};

let mut config = Config::new(Environment::Staging)?;
assert!(config.set_address("localhost").is_ok());
assert!(config.set_address("::").is_ok());
assert!(config.set_address("?").is_err());

Sets the port of self to port.

Example

use rocket::config::{Config, Environment};

let mut config = Config::new(Environment::Staging)?;
config.set_port(1024);

Sets the number of workers in self to workers.

Example

use rocket::config::{Config, Environment};

let mut config = Config::new(Environment::Staging)?;
config.set_workers(64);

Sets the keep-alive timeout to timeout seconds. If timeout is 0, keep-alive is disabled.

Example

use rocket::config::Config;

let mut config = Config::development()?;

// Set keep-alive timeout to 10 seconds.
config.set_keep_alive(10);

// Disable keep-alive.
config.set_keep_alive(0);

Sets the secret_key in self to key which must be a 256-bit base64 encoded string.

Errors

If key is not a valid 256-bit base64 encoded string, returns a BadType error.

Example

use rocket::config::{Config, Environment};

let mut config = Config::new(Environment::Staging)?;
let key = "8Xui8SN4mI+7egV/9dlfYYLGQJeEx4+DwmSQLwDVXJg=";
assert!(config.set_secret_key(key).is_ok());
assert!(config.set_secret_key("hello? anyone there?").is_err());

Sets the logging level for self to log_level.

Example

use rocket::config::{Config, LoggingLevel, Environment};

let mut config = Config::new(Environment::Staging)?;
config.set_log_level(LoggingLevel::Critical);

Sets the receive limits in self to limits.

Example

use rocket::config::{Config, Limits};

let mut config = Config::development()?;
config.set_limits(Limits::default().limit("json", 4 * (1 << 20)));

Sets the TLS configuration in self.

Certificates are read from certs_path. The certificate chain must be in X.509 PEM format. The private key is read from key_path. The private key must be an RSA key in either PKCS#1 or PKCS#8 PEM format.

Errors

If reading either the certificates or private key fails, an error of variant Io is returned. If either the certificates or private key files are malformed or cannot be parsed, an error of BadType is returned.

Example

use rocket::config::Config;

let mut config = Config::development()?;
config.set_tls("/etc/ssl/my_certs.pem", "/etc/ssl/priv.key")?;

Sets the extras for self to be the key/value pairs in extras. encoded string.

Example

use std::collections::HashMap;
use rocket::config::{Config, Environment};

let mut config = Config::new(Environment::Staging)?;

// Create the `extras` map.
let mut extras = HashMap::new();
extras.insert("another_port".to_string(), 1044.into());
extras.insert("templates".to_string(), "my_dir".into());

config.set_extras(extras);

Returns an iterator over the names and values of all of the extras in self.

Example

use std::collections::HashMap;
use rocket::config::{Config, Environment};

let mut config = Config::new(Environment::Staging)?;
assert_eq!(config.extras().count(), 0);

// Add a couple of extras to the config.
let mut extras = HashMap::new();
extras.insert("another_port".to_string(), 1044.into());
extras.insert("templates".to_string(), "my_dir".into());
config.set_extras(extras);

assert_eq!(config.extras().count(), 2);

Returns true if TLS is enabled.

Always returns false if the tls compilation feature is not enabled.

Attempts to retrieve the extra named name as a raw value.

Errors

If an extra with name doesn't exist, returns an Err of Missing.

Example

use rocket::config::{Config, Environment, Value};

let config = Config::build(Environment::Staging)
    .extra("name", "value")
    .unwrap();

assert_eq!(config.get_extra("name"), Ok(&Value::String("value".into())));
assert!(config.get_extra("other").is_err());

Attempts to retrieve the extra named name as a borrowed string.

Errors

If an extra with name doesn't exist, returns an Err of Missing. If an extra with name does exist but is not a string, returns a BadType error.

Example

use rocket::config::{Config, Environment};

let config = Config::build(Environment::Staging)
    .extra("my_extra", "extra_value")
    .unwrap();

assert_eq!(config.get_str("my_extra"), Ok("extra_value"));

Attempts to retrieve the extra named name as an owned string.

Errors

If an extra with name doesn't exist, returns an Err of Missing. If an extra with name does exist but is not a string, returns a BadType error.

Example

use rocket::config::{Config, Environment};

let config = Config::build(Environment::Staging)
    .extra("my_extra", "extra_value")
    .unwrap();

assert_eq!(config.get_string("my_extra"), Ok("extra_value".to_string()));

Attempts to retrieve the extra named name as an integer.

Errors

If an extra with name doesn't exist, returns an Err of Missing. If an extra with name does exist but is not an integer, returns a BadType error.

Example

use rocket::config::{Config, Environment};

let config = Config::build(Environment::Staging)
    .extra("my_extra", 1025)
    .unwrap();

assert_eq!(config.get_int("my_extra"), Ok(1025));

Attempts to retrieve the extra named name as a boolean.

Errors

If an extra with name doesn't exist, returns an Err of Missing. If an extra with name does exist but is not a boolean, returns a BadType error.

Example

use rocket::config::{Config, Environment};

let config = Config::build(Environment::Staging)
    .extra("my_extra", true)
    .unwrap();

assert_eq!(config.get_bool("my_extra"), Ok(true));

Attempts to retrieve the extra named name as a float.

Errors

If an extra with name doesn't exist, returns an Err of Missing. If an extra with name does exist but is not a float, returns a BadType error.

Example

use rocket::config::{Config, Environment};

let config = Config::build(Environment::Staging)
    .extra("pi", 3.14159)
    .unwrap();

assert_eq!(config.get_float("pi"), Ok(3.14159));

Attempts to retrieve the extra named name as a slice of an array.

Errors

If an extra with name doesn't exist, returns an Err of Missing. If an extra with name does exist but is not an array, returns a BadType error.

Example

use rocket::config::{Config, Environment};

let config = Config::build(Environment::Staging)
    .extra("numbers", vec![1, 2, 3])
    .unwrap();

assert!(config.get_slice("numbers").is_ok());

Attempts to retrieve the extra named name as a table.

Errors

If an extra with name doesn't exist, returns an Err of Missing. If an extra with name does exist but is not a table, returns a BadType error.

Example

use std::collections::BTreeMap;
use rocket::config::{Config, Environment};

let mut table = BTreeMap::new();
table.insert("my_value".to_string(), 1);

let config = Config::build(Environment::Staging)
    .extra("my_table", table)
    .unwrap();

assert!(config.get_table("my_table").is_ok());

Attempts to retrieve the extra named name as a datetime value.

Errors

If an extra with name doesn't exist, returns an Err of Missing. If an extra with name does exist but is not a datetime, returns a BadType error.

Example

use rocket::config::{Config, Environment, Value, Datetime};

let date = "1979-05-27T00:32:00-07:00".parse::<Datetime>().unwrap();

let config = Config::build(Environment::Staging)
    .extra("my_date", Value::Datetime(date.clone()))
    .unwrap();

assert_eq!(config.get_datetime("my_date"), Ok(&date));

Returns the path at which the configuration file for self is stored. For instance, if the configuration file is at /tmp/Rocket.toml, the path /tmp is returned.

Example

use std::env::current_dir;
use rocket::config::{Config, Environment};

let config = Config::new(Environment::Staging)
    .expect("can retrieve current directory");

assert_eq!(config.root(), current_dir().unwrap());

If path is a relative path, path is appended to the Config::root() at which the configuration file for self is stored and the new path is returned. If path is absolute, path is returned unaltered.

Example

use std::env::current_dir;
use std::path::Path;
use rocket::config::{Config, Environment};

let config = Config::new(Environment::Staging)
    .expect("can retrieve current directory");

assert_eq!(config.root(), current_dir().unwrap());
assert_eq!(config.root_relative("abc"), config.root().join("abc"));
assert_eq!(config.root_relative("/abc"), Path::new("/abc"));

Trait Implementations

impl Clone for Config
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl PartialEq<Config> for Config
[src]

Doesn't consider the secret key or config path.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Debug for Config
[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl Send for Config

impl Sync for Config

Blanket Implementations

impl<T> From for T
[src]

Performs the conversion.

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

Performs the conversion.

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

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

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

Immutably borrows from an owned value. Read more

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

🔬 This is a nightly-only experimental API. (get_type_id)

this method will likely be replaced by an associated static

Gets the TypeId of self. Read more

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

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

Mutably borrows from an owned value. Read more

impl<T> Typeable for T where
    T: Any

Get the TypeId of this object.

impl<T> IntoCollection for T

Important traits for SmallVec<A>

Converts self into a collection.

Important traits for SmallVec<A>

impl<T, I> AsResult for T where
    I: Input,