async_graphql/types/external/tokio/sync/
mutex.rs1use std::borrow::Cow;
2
3use async_graphql_parser::types::Field;
4use tokio::sync::Mutex;
5
6use crate::{ContextSelectionSet, OutputType, Positioned, ServerResult, Value, registry};
7
8#[cfg_attr(feature = "boxed-trait", async_trait::async_trait)]
9impl<T: OutputType> OutputType for Mutex<T> {
10 fn type_name() -> Cow<'static, str> {
11 T::type_name()
12 }
13
14 fn create_type_info(registry: &mut registry::Registry) -> String {
15 <T as OutputType>::create_type_info(registry)
16 }
17
18 async fn resolve(
19 &self,
20 ctx: &ContextSelectionSet<'_>,
21 field: &Positioned<Field>,
22 ) -> ServerResult<Value> {
23 self.lock().await.resolve(ctx, field).await
24 }
25}