Struct rocket::config::ConfigBuilder
source · 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: Environment
The environment that this configuration corresponds to.
address: String
The address to serve on.
port: u16
The port to serve on.
workers: u16
The number of workers to run in parallel.
keep_alive: u32
Keep-alive timeout in seconds or disabled if 0.
read_timeout: u32
Number of seconds to wait without receiving data before closing a
connection; disabled when None
.
write_timeout: u32
Number of seconds to wait without sending data before closing a
connection; disabled when None
.
log_level: LoggingLevel
How 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: Limits
Size 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§
source§impl ConfigBuilder
impl ConfigBuilder
sourcepub fn new(environment: Environment) -> ConfigBuilder
pub fn new(environment: Environment) -> ConfigBuilder
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();
sourcepub fn address<A: Into<String>>(self, address: A) -> Self
pub fn address<A: Into<String>>(self, address: A) -> Self
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");
sourcepub fn port(self, port: u16) -> Self
pub fn port(self, port: u16) -> Self
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);
sourcepub fn workers(self, workers: u16) -> Self
pub fn workers(self, workers: u16) -> Self
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);
sourcepub fn keep_alive(self, timeout: u32) -> Self
pub fn keep_alive(self, timeout: u32) -> Self
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);
sourcepub fn read_timeout(self, timeout: u32) -> Self
pub fn read_timeout(self, timeout: u32) -> Self
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);
sourcepub fn write_timeout(self, timeout: u32) -> Self
pub fn write_timeout(self, timeout: u32) -> Self
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);
sourcepub fn log_level(self, log_level: LoggingLevel) -> Self
pub fn log_level(self, log_level: LoggingLevel) -> Self
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);
sourcepub fn secret_key<K: Into<String>>(self, key: K) -> Self
pub fn secret_key<K: Into<String>>(self, key: K) -> Self
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();
sourcepub fn limits(self, limits: Limits) -> Self
pub fn limits(self, limits: Limits) -> Self
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();
sourcepub fn tls<C, K>(self, certs_path: C, key_path: K) -> Self
pub fn tls<C, K>(self, certs_path: C, key_path: K) -> Self
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();
sourcepub fn environment(self, env: Environment) -> Self
pub fn environment(self, env: Environment) -> Self
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);
sourcepub fn root<P: AsRef<Path>>(self, path: P) -> Self
pub fn root<P: AsRef<Path>>(self, path: P) -> Self
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"));
sourcepub fn extra<V: Into<Value>>(self, name: &str, value: V) -> Self
pub fn extra<V: Into<Value>>(self, name: &str, value: V) -> Self
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"));
sourcepub fn finalize(self) -> Result<Config>
pub fn finalize(self) -> Result<Config>
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());
sourcepub fn unwrap(self) -> Config
pub fn unwrap(self) -> Config
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");
sourcepub fn expect(self, msg: &str) -> Config
pub fn expect(self, msg: &str) -> Config
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§
source§impl Clone for ConfigBuilder
impl Clone for ConfigBuilder
source§fn clone(&self) -> ConfigBuilder
fn clone(&self) -> ConfigBuilder
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for ConfigBuilder
impl RefUnwindSafe for ConfigBuilder
impl Send for ConfigBuilder
impl Sync for ConfigBuilder
impl Unpin for ConfigBuilder
impl UnwindSafe for ConfigBuilder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)