pub struct StructuralSchemaRewriter;Expand description
schemars [Visitor] that rewrites a [Schema] to conform to Kubernetes’ “structural schema” rules
The following two transformations are applied
- Rewrite enums from
oneOftoobjects with multiple variants (schemars#84) - Rewrite untagged enums from
anyOftoobjects with multiple variants (kube#1028) - Rewrite
additionalPropertiesfrom#[serde(flatten)]tox-kubernetes-preserve-unknown-fields(kube#844)
This is used automatically by kube::derive’s #[derive(CustomResource)],
but it can also be used manually with SchemaSettings::with_transform.
§Panics
The [Visitor] functions may panic if the transform could not be applied. For example,
there must not be any overlapping properties between oneOf branches.
Trait Implementations§
Source§impl Clone for StructuralSchemaRewriter
impl Clone for StructuralSchemaRewriter
Source§fn clone(&self) -> StructuralSchemaRewriter
fn clone(&self) -> StructuralSchemaRewriter
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StructuralSchemaRewriter
impl Debug for StructuralSchemaRewriter
Auto Trait Implementations§
impl Freeze for StructuralSchemaRewriter
impl RefUnwindSafe for StructuralSchemaRewriter
impl Send for StructuralSchemaRewriter
impl Sync for StructuralSchemaRewriter
impl Unpin for StructuralSchemaRewriter
impl UnwindSafe for StructuralSchemaRewriter
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> GenTransform for T
impl<T> GenTransform for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§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
Source§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
Decompress response bodies. Read more
Source§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
Source§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