Struct rocket::config::ConfigBuilder [−][src]
pub struct ConfigBuilder {Show 13 fields
pub environment: Environment,
pub address: String,
pub port: u16,
pub workers: u16,
pub keep_alive: u32,
pub read_timeout: u32,
pub write_timeout: u32,
pub log_level: LoggingLevel,
pub secret_key: Option<String>,
pub tls: Option<(String, String)>,
pub limits: Limits,
pub extras: HashMap<String, Value>,
pub root: Option<PathBuf>,
}Expand description
Structure following the builder pattern for building Config structures.
Fields
environment: EnvironmentThe environment that this configuration corresponds to.
address: StringThe address to serve on.
port: u16The port to serve on.
workers: u16The number of workers to run in parallel.
keep_alive: u32Keep-alive timeout in seconds or disabled if 0.
read_timeout: u32Number of seconds to wait without receiving data before closing a
connection; disabled when None.
write_timeout: u32Number of seconds to wait without sending data before closing a
connection; disabled when None.
log_level: LoggingLevelHow much information to log.
secret_key: Option<String>The secret key.
tls: Option<(String, String)>TLS configuration (path to certificates file, path to private key file).
limits: LimitsSize limits.
extras: HashMap<String, Value>Any extra parameters that aren’t part of Rocket’s config.
root: Option<PathBuf>The root directory of this config, if any.
Implementations
Create a new ConfigBuilder instance using the default parameters from
the given environment.
This method is typically called indirectly via Config::build().
Example
use rocket::config::{Config, Environment};
let config = Config::build(Environment::Staging)
.address("127.0.0.1")
.port(700)
.workers(12)
.finalize();
Sets the address in the configuration being built.
Example
use rocket::config::{Config, Environment};
let config = Config::build(Environment::Staging)
.address("127.0.0.1")
.unwrap();
assert_eq!(config.address.as_str(), "127.0.0.1");Sets the port in the configuration being built.
Example
use rocket::config::{Config, Environment};
let config = Config::build(Environment::Staging)
.port(1329)
.unwrap();
assert_eq!(config.port, 1329);Sets workers in the configuration being built.
Example
use rocket::config::{Config, Environment};
let config = Config::build(Environment::Staging)
.workers(64)
.unwrap();
assert_eq!(config.workers, 64);Sets the keep-alive timeout to timeout seconds. If timeout is 0,
keep-alive is disabled.
Example
use rocket::config::{Config, Environment};
let config = Config::build(Environment::Staging)
.keep_alive(10)
.unwrap();
assert_eq!(config.keep_alive, Some(10));
let config = Config::build(Environment::Staging)
.keep_alive(0)
.unwrap();
assert_eq!(config.keep_alive, None);Sets the read timeout to timeout seconds. If timeout is 0,
read timeouts are disabled.
Example
use rocket::config::{Config, Environment};
let config = Config::build(Environment::Staging)
.read_timeout(10)
.unwrap();
assert_eq!(config.read_timeout, Some(10));
let config = Config::build(Environment::Staging)
.read_timeout(0)
.unwrap();
assert_eq!(config.read_timeout, None);Sets the write timeout to timeout seconds. If timeout is 0,
write timeouts are disabled.
Example
use rocket::config::{Config, Environment};
let config = Config::build(Environment::Staging)
.write_timeout(10)
.unwrap();
assert_eq!(config.write_timeout, Some(10));
let config = Config::build(Environment::Staging)
.write_timeout(0)
.unwrap();
assert_eq!(config.write_timeout, None);Sets the log_level in the configuration being built.
Example
use rocket::config::{Config, Environment, LoggingLevel};
let config = Config::build(Environment::Staging)
.log_level(LoggingLevel::Critical)
.unwrap();
assert_eq!(config.log_level, LoggingLevel::Critical);Sets the secret_key in the configuration being built.
Example
use rocket::config::{Config, Environment, LoggingLevel};
let key = "8Xui8SN4mI+7egV/9dlfYYLGQJeEx4+DwmSQLwDVXJg=";
let mut config = Config::build(Environment::Staging)
.secret_key(key)
.unwrap();Sets the limits in the configuration being built.
Example
use rocket::config::{Config, Environment, Limits};
let mut config = Config::build(Environment::Staging)
.limits(Limits::new().limit("json", 5 * (1 << 20)))
.unwrap();Sets the TLS configuration in the configuration being built.
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.
Example
use rocket::config::{Config, Environment};
let mut config = Config::build(Environment::Staging)
.tls("/path/to/certs.pem", "/path/to/key.pem")
.unwrap();Sets the environment in the configuration being built.
Example
use rocket::config::{Config, Environment};
let config = Config::build(Environment::Staging)
.environment(Environment::Production)
.unwrap();
assert_eq!(config.environment, Environment::Production);Sets the root in the configuration being built.
Example
use rocket::config::{Config, Environment};
let config = Config::build(Environment::Staging)
.root("/my_app/dir")
.unwrap();
assert_eq!(config.root().unwrap(), Path::new("/my_app/dir"));Adds an extra configuration parameter with name and value to the
configuration being built. The value can be any type that implements
Into<Value> including &str, String, Vec<V: Into<Value>>,
HashMap<S: Into<String>, V: Into<Value>>, and most integer and float
types.
Example
use rocket::config::{Config, Environment};
let config = Config::build(Environment::Staging)
.extra("pi", 3.14)
.extra("custom_dir", "/a/b/c")
.unwrap();
assert_eq!(config.get_float("pi"), Ok(3.14));
assert_eq!(config.get_str("custom_dir"), Ok("/a/b/c"));Return the Config structure that was being built by this builder.
Errors
If the address or secret key fail to parse, returns a BadType error.
Example
use rocket::config::{Config, Environment};
let config = Config::build(Environment::Staging)
.address("127.0.0.1")
.port(700)
.workers(12)
.keep_alive(0)
.finalize();
assert!(config.is_ok());
let config = Config::build(Environment::Staging)
.address("123.123.123.123.123 whoops!")
.finalize();
assert!(config.is_err());Return the Config structure that was being built by this builder.
Panics
Panics if the supplied address, secret key, or TLS configuration fail to parse.
Example
use rocket::config::{Config, Environment};
let config = Config::build(Environment::Staging)
.address("127.0.0.1")
.unwrap();
assert_eq!(config.address.as_str(), "127.0.0.1");Returns the Config structure that was being built by this builder.
Panics
Panics if the supplied address, secret key, or TLS configuration fail to
parse. If a panic occurs, the error message msg is printed.
Example
use rocket::config::{Config, Environment};
let config = Config::build(Environment::Staging)
.address("127.0.0.1")
.expect("the configuration is bad!");
assert_eq!(config.address.as_str(), "127.0.0.1");Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for ConfigBuilder
impl Send for ConfigBuilder
impl Sync for ConfigBuilder
impl Unpin for ConfigBuilder
impl UnwindSafe for ConfigBuilder
Blanket Implementations
Mutably borrows from an owned value. Read more