pub struct McpState {
pub pool: PgPool,
pub app_conf: ApplicationConfiguration,
pub jwt_key: Arc<JwtKey>,
pub file_store: Arc<dyn FileStore + Send + Sync>,
pub validator: Arc<dyn BlockValidator>,
pub exercise_services: ExerciseServiceClients,
block_schemas: Mutex<Option<(Instant, Arc<BlockSchemas>)>>,
}Expand description
Everything a tool handler needs besides its request.
Fields§
§pool: PgPool§app_conf: ApplicationConfiguration§jwt_key: Arc<JwtKey>§file_store: Arc<dyn FileStore + Send + Sync>§validator: Arc<dyn BlockValidator>§exercise_services: ExerciseServiceClients§block_schemas: Mutex<Option<(Instant, Arc<BlockSchemas>)>>Held while fetching, so calls that find the cache stale meanwhile wait for that one fetch.
Implementations§
Source§impl McpState
impl McpState
Sourcepub fn new(
pool: PgPool,
app_conf: ApplicationConfiguration,
jwt_key: Arc<JwtKey>,
file_store: Arc<dyn FileStore + Send + Sync>,
validator: Arc<dyn BlockValidator>,
exercise_services: ExerciseServiceClients,
) -> Self
pub fn new( pool: PgPool, app_conf: ApplicationConfiguration, jwt_key: Arc<JwtKey>, file_store: Arc<dyn FileStore + Send + Sync>, validator: Arc<dyn BlockValidator>, exercise_services: ExerciseServiceClients, ) -> Self
The state with an empty block schema cache.
Sourcepub fn review_url(&self, changeset_id: Uuid) -> String
pub fn review_url(&self, changeset_id: Uuid) -> String
The page where the teacher reviews, publishes or discards a changeset.
Sourcepub async fn block_schemas(&self) -> Result<Arc<BlockSchemas>, ValidatorError>
pub async fn block_schemas(&self) -> Result<Arc<BlockSchemas>, ValidatorError>
The CMS block schemas, cached briefly.
Trait Implementations§
Source§impl ToolHandler<McpState> for DiscardChangeset
impl ToolHandler<McpState> for DiscardChangeset
Source§type Args = DiscardChangesetArgs
type Args = DiscardChangesetArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: DiscardChangesetArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for FindReplace
impl ToolHandler<McpState> for FindReplace
Source§type Args = FindReplaceArgs
type Args = FindReplaceArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: FindReplaceArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for GetCourseSettings
impl ToolHandler<McpState> for GetCourseSettings
Source§type Args = CourseArgs
type Args = CourseArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: CourseArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for GetCourseStructure
impl ToolHandler<McpState> for GetCourseStructure
Source§type Args = GetCourseStructureArgs
type Args = GetCourseStructureArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: GetCourseStructureArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for GetExercise
impl ToolHandler<McpState> for GetExercise
Source§type Args = GetExerciseArgs
type Args = GetExerciseArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: GetExerciseArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for GetGlossaryAndReferences
impl ToolHandler<McpState> for GetGlossaryAndReferences
Source§type Args = CourseArgs
type Args = CourseArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: CourseArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for GetHistory
impl ToolHandler<McpState> for GetHistory
Source§type Args = GetHistoryArgs
type Args = GetHistoryArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: GetHistoryArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for GetPageContent
impl ToolHandler<McpState> for GetPageContent
Source§type Args = GetPageContentArgs
type Args = GetPageContentArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: GetPageContentArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for GetPreviewLink
impl ToolHandler<McpState> for GetPreviewLink
Source§type Args = GetPreviewLinkArgs
type Args = GetPreviewLinkArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: GetPreviewLinkArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for Guide
impl ToolHandler<McpState> for Guide
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
_: &'life2 RequestContext,
args: GuideArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for ListChangesets
impl ToolHandler<McpState> for ListChangesets
Source§type Args = ListChangesetsArgs
type Args = ListChangesetsArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: ListChangesetsArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for ListCourses
impl ToolHandler<McpState> for ListCourses
Source§type Args = ListCoursesArgs
type Args = ListCoursesArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
__arg3: ListCoursesArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for ListExercises
impl ToolHandler<McpState> for ListExercises
Source§type Args = ListExercisesArgs
type Args = ListExercisesArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: ListExercisesArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for PatchCourseSettings
impl ToolHandler<McpState> for PatchCourseSettings
Source§type Args = PatchCourseArgs
type Args = PatchCourseArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: PatchCourseArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for PatchCourseStructure
impl ToolHandler<McpState> for PatchCourseStructure
Source§type Args = PatchCourseStructureArgs
type Args = PatchCourseStructureArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: PatchCourseStructureArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for PatchExercise
impl ToolHandler<McpState> for PatchExercise
Source§type Args = PatchExerciseArgs
type Args = PatchExerciseArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: PatchExerciseArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for PatchGlossaryAndReferences
impl ToolHandler<McpState> for PatchGlossaryAndReferences
Source§type Args = PatchCourseArgs
type Args = PatchCourseArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: PatchCourseArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for PatchPageContent
impl ToolHandler<McpState> for PatchPageContent
Source§type Args = PatchPageContentArgs
type Args = PatchPageContentArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: PatchPageContentArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for PublishChangeset
impl ToolHandler<McpState> for PublishChangeset
Source§const ASKS_FOR_CONFIRMATION: bool = true
const ASKS_FOR_CONFIRMATION: bool = true
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§type Args = PublishChangesetArgs
type Args = PublishChangesetArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: PublishChangesetArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§impl ToolHandler<McpState> for ReadPublicCourse
impl ToolHandler<McpState> for ReadPublicCourse
Source§type Args = ReadPublicCourseArgs
type Args = ReadPublicCourseArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: ReadPublicCourseArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for RevertChange
impl ToolHandler<McpState> for RevertChange
Source§type Args = RevertChangeArgs
type Args = RevertChangeArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: RevertChangeArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for StructuralReplace
impl ToolHandler<McpState> for StructuralReplace
Source§type Args = StructuralReplaceArgs
type Args = StructuralReplaceArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: StructuralReplaceArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Source§impl ToolHandler<McpState> for UploadFile
impl ToolHandler<McpState> for UploadFile
Source§type Args = UploadFileArgs
type Args = UploadFileArgs
The tool’s arguments; their JSON Schema is the tool’s input schema.
fn call<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 McpState,
ctx: &'life2 RequestContext,
args: UploadFileArgs,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§const ASKS_FOR_CONFIRMATION: bool = false
const ASKS_FOR_CONFIRMATION: bool = false
Whether
call can answer ToolOutcome::NeedsConfirmation. Only then does dispatch bind
the call’s arguments to a confirmation, which costs a pass over them.Auto Trait Implementations§
impl !Freeze for McpState
impl !RefUnwindSafe for McpState
impl Send for McpState
impl Sync for McpState
impl Unpin for McpState
impl UnsafeUnpin for McpState
impl !UnwindSafe for McpState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ServiceExt for T
impl<T> ServiceExt for T
§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
Decompress response bodies. Read more
§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more