mirror of
https://github.com/actix/actix-extras.git
synced 2025-09-02 04:56:38 +02:00
Deploying to gh-pages from @ actix/actix-extras@76d9313171 🚀
This commit is contained in:
@@ -811,6 +811,16 @@
|
||||
<a href="#811" id="811">811</a>
|
||||
<a href="#812" id="812">812</a>
|
||||
<a href="#813" id="813">813</a>
|
||||
<a href="#814" id="814">814</a>
|
||||
<a href="#815" id="815">815</a>
|
||||
<a href="#816" id="816">816</a>
|
||||
<a href="#817" id="817">817</a>
|
||||
<a href="#818" id="818">818</a>
|
||||
<a href="#819" id="819">819</a>
|
||||
<a href="#820" id="820">820</a>
|
||||
<a href="#821" id="821">821</a>
|
||||
<a href="#822" id="822">822</a>
|
||||
<a href="#823" id="823">823</a>
|
||||
</pre></div><pre class="rust"><code><span class="doccomment">//! Easily manage Actix Web's settings from a TOML file and environment variables.
|
||||
//!
|
||||
//! To get started add a [`Settings::parse_toml("./Server.toml")`](Settings::parse_toml) call to the
|
||||
@@ -1056,17 +1066,13 @@
|
||||
}
|
||||
|
||||
<span class="doccomment">/// Extension trait for applying parsed settings to the server object.
|
||||
</span><span class="kw">pub trait </span>ApplySettings {
|
||||
<span class="doccomment">/// Apply a [`BasicSettings`] value to `self`.
|
||||
///
|
||||
/// [`BasicSettings`]: ./struct.BasicSettings.html
|
||||
</span><span class="kw">pub trait </span>ApplySettings<S> {
|
||||
<span class="doccomment">/// Apply some settings object value to `self`.
|
||||
</span><span class="attr">#[must_use]
|
||||
</span><span class="kw">fn </span>apply_settings<A>(<span class="self">self</span>, settings: <span class="kw-2">&</span>BasicSettings<A>) -> <span class="self">Self
|
||||
</span><span class="kw">where
|
||||
</span>A: de::DeserializeOwned;
|
||||
</span><span class="kw">fn </span>apply_settings(<span class="self">self</span>, settings: <span class="kw-2">&</span>S) -> <span class="self">Self</span>;
|
||||
}
|
||||
|
||||
<span class="kw">impl</span><F, I, S, B> ApplySettings <span class="kw">for </span>HttpServer<F, I, S, B>
|
||||
<span class="kw">impl</span><F, I, S, B> ApplySettings<ActixSettings> <span class="kw">for </span>HttpServer<F, I, S, B>
|
||||
<span class="kw">where
|
||||
</span>F: Fn() -> I + Send + Clone + <span class="lifetime">'static</span>,
|
||||
I: IntoServiceFactory<S, Request>,
|
||||
@@ -1077,51 +1083,48 @@
|
||||
S::Future: <span class="lifetime">'static</span>,
|
||||
B: MessageBody + <span class="lifetime">'static</span>,
|
||||
{
|
||||
<span class="kw">fn </span>apply_settings<A>(<span class="kw-2">mut </span><span class="self">self</span>, settings: <span class="kw-2">&</span>BasicSettings<A>) -> <span class="self">Self
|
||||
</span><span class="kw">where
|
||||
</span>A: de::DeserializeOwned,
|
||||
{
|
||||
<span class="kw">if </span>settings.actix.tls.enabled {
|
||||
<span class="kw">fn </span>apply_settings(<span class="kw-2">mut </span><span class="self">self</span>, settings: <span class="kw-2">&</span>ActixSettings) -> <span class="self">Self </span>{
|
||||
<span class="kw">if </span>settings.tls.enabled {
|
||||
<span class="comment">// for Address { host, port } in &settings.actix.hosts {
|
||||
// self = self.bind(format!("{}:{}", host, port))
|
||||
// .unwrap(/*TODO*/);
|
||||
// }
|
||||
</span><span class="macro">todo!</span>(<span class="string">"[ApplySettings] TLS support has not been implemented yet."</span>);
|
||||
} <span class="kw">else </span>{
|
||||
<span class="kw">for </span>Address { host, port } <span class="kw">in </span><span class="kw-2">&</span>settings.actix.hosts {
|
||||
<span class="kw">for </span>Address { host, port } <span class="kw">in </span><span class="kw-2">&</span>settings.hosts {
|
||||
<span class="self">self </span>= <span class="self">self</span>.bind(<span class="macro">format!</span>(<span class="string">"{host}:{port}"</span>))
|
||||
.unwrap(<span class="comment">/*TODO*/</span>);
|
||||
}
|
||||
}
|
||||
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.actix.num_workers {
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.num_workers {
|
||||
NumWorkers::Default => <span class="self">self</span>,
|
||||
NumWorkers::Manual(n) => <span class="self">self</span>.workers(n),
|
||||
};
|
||||
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.actix.backlog {
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.backlog {
|
||||
Backlog::Default => <span class="self">self</span>,
|
||||
Backlog::Manual(n) => <span class="self">self</span>.backlog(n <span class="kw">as </span>u32),
|
||||
};
|
||||
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.actix.max_connections {
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.max_connections {
|
||||
MaxConnections::Default => <span class="self">self</span>,
|
||||
MaxConnections::Manual(n) => <span class="self">self</span>.max_connections(n),
|
||||
};
|
||||
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.actix.max_connection_rate {
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.max_connection_rate {
|
||||
MaxConnectionRate::Default => <span class="self">self</span>,
|
||||
MaxConnectionRate::Manual(n) => <span class="self">self</span>.max_connection_rate(n),
|
||||
};
|
||||
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.actix.keep_alive {
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.keep_alive {
|
||||
KeepAlive::Default => <span class="self">self</span>,
|
||||
KeepAlive::Disabled => <span class="self">self</span>.keep_alive(ActixKeepAlive::Disabled),
|
||||
KeepAlive::Os => <span class="self">self</span>.keep_alive(ActixKeepAlive::Os),
|
||||
KeepAlive::Seconds(n) => <span class="self">self</span>.keep_alive(Duration::from_secs(n <span class="kw">as </span>u64)),
|
||||
};
|
||||
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.actix.client_timeout {
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.client_timeout {
|
||||
Timeout::Default => <span class="self">self</span>,
|
||||
Timeout::Milliseconds(n) => {
|
||||
<span class="self">self</span>.client_request_timeout(Duration::from_millis(n <span class="kw">as </span>u64))
|
||||
@@ -1129,7 +1132,7 @@
|
||||
Timeout::Seconds(n) => <span class="self">self</span>.client_request_timeout(Duration::from_secs(n <span class="kw">as </span>u64)),
|
||||
};
|
||||
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.actix.client_shutdown {
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.client_shutdown {
|
||||
Timeout::Default => <span class="self">self</span>,
|
||||
Timeout::Milliseconds(n) => {
|
||||
<span class="self">self</span>.client_disconnect_timeout(Duration::from_millis(n <span class="kw">as </span>u64))
|
||||
@@ -1137,7 +1140,7 @@
|
||||
Timeout::Seconds(n) => <span class="self">self</span>.client_disconnect_timeout(Duration::from_secs(n <span class="kw">as </span>u64)),
|
||||
};
|
||||
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.actix.shutdown_timeout {
|
||||
<span class="self">self </span>= <span class="kw">match </span>settings.shutdown_timeout {
|
||||
Timeout::Default => <span class="self">self</span>,
|
||||
Timeout::Milliseconds(<span class="kw">_</span>) => <span class="self">self</span>.shutdown_timeout(<span class="number">1</span>),
|
||||
Timeout::Seconds(n) => <span class="self">self</span>.shutdown_timeout(n <span class="kw">as </span>u64),
|
||||
@@ -1147,6 +1150,23 @@
|
||||
</span>}
|
||||
}
|
||||
|
||||
<span class="kw">impl</span><F, I, S, B, A> ApplySettings<BasicSettings<A>> <span class="kw">for </span>HttpServer<F, I, S, B>
|
||||
<span class="kw">where
|
||||
</span>F: Fn() -> I + Send + Clone + <span class="lifetime">'static</span>,
|
||||
I: IntoServiceFactory<S, Request>,
|
||||
S: ServiceFactory<Request, Config = AppConfig> + <span class="lifetime">'static</span>,
|
||||
S::Error: Into<WebError> + <span class="lifetime">'static</span>,
|
||||
S::InitError: fmt::Debug,
|
||||
S::Response: Into<Response<B>> + <span class="lifetime">'static</span>,
|
||||
S::Future: <span class="lifetime">'static</span>,
|
||||
B: MessageBody + <span class="lifetime">'static</span>,
|
||||
A: de::DeserializeOwned,
|
||||
{
|
||||
<span class="kw">fn </span>apply_settings(<span class="self">self</span>, settings: <span class="kw-2">&</span>BasicSettings<A>) -> <span class="self">Self </span>{
|
||||
<span class="self">self</span>.apply_settings(<span class="kw-2">&</span>settings.actix)
|
||||
}
|
||||
}
|
||||
|
||||
<span class="attr">#[cfg(test)]
|
||||
</span><span class="kw">mod </span>tests {
|
||||
<span class="kw">use </span>actix_web::App;
|
||||
|
Reference in New Issue
Block a user