From 50d2fee4e2b375d3e4ddef195ea2c73470fdc416 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 7 Aug 2024 01:32:49 +0100 Subject: [PATCH] chore(actix-settings): prepare release 0.8.0 --- actix-settings/CHANGES.md | 14 +++++++------- actix-settings/Cargo.toml | 2 +- actix-settings/README.md | 4 ++-- actix-settings/src/lib.rs | 23 +++++++++++++++++++---- actix-settings/src/settings/tls.rs | 24 ++++++++++-------------- 5 files changed, 39 insertions(+), 28 deletions(-) diff --git a/actix-settings/CHANGES.md b/actix-settings/CHANGES.md index 3093de83c..e34da368e 100644 --- a/actix-settings/CHANGES.md +++ b/actix-settings/CHANGES.md @@ -2,14 +2,14 @@ ## Unreleased -- Add new feature named `openssl` for TLS settings using `OpenSSL` dependency. [#380] -- Add new function `settings::tls::Tls::get_ssl_acceptor_builder()` to build `openssl::ssl::SslAcceptorBuilder`. [#380] -- Implement TLS logic for `ApplySettings::try_apply_settings()`. [#380] -- Add `openssl` dependency; -- Minimum supported Rust version (MSRV) is now 1.75. -- `ApplySettings::apply_settings()` is deprecated; `ApplySettings::try_apply_settings()` should be preferred. [#380] +## 0.8.0 -[#380]: https://github.com/actix/actix-extras/pull/380 +- Add `openssl` crate feature for TLS settings using OpenSSL. +- Add `ApplySettings::try_apply_settings()`. +- Implement TLS logic for `ApplySettings::try_apply_settings()`. +- Add `Tls::get_ssl_acceptor_builder()` function to build `openssl::ssl::SslAcceptorBuilder`. +- Deprecate `ApplySettings::apply_settings()`. +- Minimum supported Rust version (MSRV) is now 1.75. ## 0.7.1 diff --git a/actix-settings/Cargo.toml b/actix-settings/Cargo.toml index 09f48f2c9..0ad6c69ba 100644 --- a/actix-settings/Cargo.toml +++ b/actix-settings/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-settings" -version = "0.7.1" +version = "0.8.0" authors = [ "Joey Ezechiels ", "Rob Ede ", diff --git a/actix-settings/README.md b/actix-settings/README.md index 58393babd..dceb230fc 100644 --- a/actix-settings/README.md +++ b/actix-settings/README.md @@ -5,9 +5,9 @@ [![crates.io](https://img.shields.io/crates/v/actix-settings?label=latest)](https://crates.io/crates/actix-settings) -[![Documentation](https://docs.rs/actix-settings/badge.svg?version=0.7.1)](https://docs.rs/actix-settings/0.7.1) +[![Documentation](https://docs.rs/actix-settings/badge.svg?version=0.8.0)](https://docs.rs/actix-settings/0.8.0) ![Apache 2.0 or MIT licensed](https://img.shields.io/crates/l/actix-settings) -[![Dependency Status](https://deps.rs/crate/actix-settings/0.7.1/status.svg)](https://deps.rs/crate/actix-settings/0.7.1) +[![Dependency Status](https://deps.rs/crate/actix-settings/0.8.0/status.svg)](https://deps.rs/crate/actix-settings/0.8.0) diff --git a/actix-settings/src/lib.rs b/actix-settings/src/lib.rs index a527dfe51..fe3d6d13c 100644 --- a/actix-settings/src/lib.rs +++ b/actix-settings/src/lib.rs @@ -242,11 +242,26 @@ where /// Extension trait for applying parsed settings to the server object. pub trait ApplySettings: Sized { - /// Apply some settings object value to `self`. - #[deprecated = "Prefer `try_apply_settings`."] - fn apply_settings(self, settings: &S) -> Self; + /// Applies some settings object value to `self`. + /// + /// The default implementation calls [`try_apply_settings()`]. + /// + /// # Panics + /// + /// May panic if settings are invalid or cannot be applied. + /// + /// [`try_apply_settings()`]: ApplySettings::try_apply_settings(). + #[deprecated = "Prefer `try_apply_settings()`."] + fn apply_settings(self, settings: &S) -> Self { + self.try_apply_settings(settings) + .expect("Could not apply settings") + } - /// Apply some settings object value to `self`. + /// Applies some settings object value to `self`. + /// + /// # Errors + /// + /// May return error if settings are invalid or cannot be applied. fn try_apply_settings(self, settings: &S) -> AsResult; } diff --git a/actix-settings/src/settings/tls.rs b/actix-settings/src/settings/tls.rs index c39b16f8f..34829d7d4 100644 --- a/actix-settings/src/settings/tls.rs +++ b/actix-settings/src/settings/tls.rs @@ -21,35 +21,31 @@ pub struct Tls { } impl Tls { - /// Generates an [`SslAcceptorBuilder`] with its settings. It is often used for the following method - /// [`actix_web::server::HttpServer::bind_openssl`]. + /// Returns an [`SslAcceptorBuilder`] with the configured settings. + /// + /// The result is often used with [`actix_web::HttpServer::bind_openssl()`]. /// /// # Example - /// ```no_run - /// use actix_settings::{ApplySettings, Settings}; - /// use actix_web::{get, App, HttpServer, Responder}; /// - /// #[get("/")] - /// async fn index() -> impl Responder { - /// "Hello." - /// } + /// ```no_run + /// use std::io; + /// use actix_settings::{ApplySettings as _, Settings}; + /// use actix_web::{get, web, App, HttpServer, Responder}; /// /// #[actix_web::main] - /// async fn main() -> std::io::Result<()> { + /// async fn main() -> io::Result<()> { /// let settings = Settings::from_default_template(); /// /// HttpServer::new(|| { - /// App::new() - /// .service(index) + /// App::new().service(web::to(|| { "Hello, World!" })) /// }) /// .try_apply_settings(&settings)? /// .bind(("127.0.0.1", 8080))? - /// .bind_openssl(("127.0.0.1", 8081), settings.actix.tls.get_ssl_acceptor_builder()?)? + /// .bind_openssl(("127.0.0.1", 8443), settings.actix.tls.get_ssl_acceptor_builder()?)? /// .run() /// .await /// } /// ``` - #[allow(rustdoc::broken_intra_doc_links)] pub fn get_ssl_acceptor_builder(&self) -> AsResult { let mut builder = SslAcceptor::mozilla_intermediate(SslMethod::tls())?; builder.set_certificate_chain_file(&self.certificate)?;