:sparkles!: add async-trait dependency for WebAppExt trait

- Add `async_trait` as an optional依赖ency in pmoapp/Cargo.toml
- Enable usage of `#[async_trait]` on WebAppExt trait and its impl for Server
- Guard async-related code with `#[cfg(feature = "pmoserver")]`
This commit is contained in:
2026-04-04 00:34:55 +02:00
parent 6352a43e27
commit d81e7a9413
4 changed files with 14 additions and 1 deletions

1
Cargo.lock generated
View File

@@ -3848,6 +3848,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
name = "pmoapp" name = "pmoapp"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"async-trait",
"pmoserver", "pmoserver",
"rust-embed", "rust-embed",
] ]

View File

@@ -10,6 +10,10 @@ rust-embed = "8.5.0"
path = "../pmoserver" path = "../pmoserver"
optional = true optional = true
[dependencies.async-trait]
optional = true
version = "0.1"
[features] [features]
default = [] default = []
pmoserver = ["dep:pmoserver"] pmoserver = ["dep:pmoserver", "dep:async-trait"]

View File

@@ -237,6 +237,8 @@
//! - [Vue.js Documentation](https://vuejs.org/) //! - [Vue.js Documentation](https://vuejs.org/)
//! - [Vite Documentation](https://vitejs.dev/) //! - [Vite Documentation](https://vitejs.dev/)
#[cfg(feature = "pmoserver")]
use async_trait::async_trait;
use rust_embed::RustEmbed; use rust_embed::RustEmbed;
/// Structure représentant l'application web embarquée. /// Structure représentant l'application web embarquée.
@@ -285,6 +287,8 @@ pub struct Webapp;
/// } /// }
/// } /// }
/// ``` /// ```
#[cfg(feature = "pmoserver")]
#[async_trait]
pub trait WebAppExt { pub trait WebAppExt {
/// Ajoute une Single Page Application au serveur. /// Ajoute une Single Page Application au serveur.
/// ///

View File

@@ -27,10 +27,14 @@
//! # } //! # }
//! ``` //! ```
#[cfg(feature = "pmoserver")]
use async_trait::async_trait;
use crate::WebAppExt; use crate::WebAppExt;
use pmoserver::Server; use pmoserver::Server;
use rust_embed::RustEmbed; use rust_embed::RustEmbed;
#[cfg(feature = "pmoserver")]
#[async_trait]
impl WebAppExt for Server { impl WebAppExt for Server {
async fn add_webapp<W>(&mut self, path: &str) async fn add_webapp<W>(&mut self, path: &str)
where where