: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"
version = "0.1.0"
dependencies = [
"async-trait",
"pmoserver",
"rust-embed",
]

View File

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

View File

@@ -237,6 +237,8 @@
//! - [Vue.js Documentation](https://vuejs.org/)
//! - [Vite Documentation](https://vitejs.dev/)
#[cfg(feature = "pmoserver")]
use async_trait::async_trait;
use rust_embed::RustEmbed;
/// Structure représentant l'application web embarquée.
@@ -285,6 +287,8 @@ pub struct Webapp;
/// }
/// }
/// ```
#[cfg(feature = "pmoserver")]
#[async_trait]
pub trait WebAppExt {
/// 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 pmoserver::Server;
use rust_embed::RustEmbed;
#[cfg(feature = "pmoserver")]
#[async_trait]
impl WebAppExt for Server {
async fn add_webapp<W>(&mut self, path: &str)
where