Skip to content

Commit

Permalink
dev(qol): implement From conversion to equivalent HTTP types
Browse files Browse the repository at this point in the history
  • Loading branch information
the-wondersmith committed Apr 23, 2024
1 parent 18dccea commit 73af013
Showing 1 changed file with 38 additions and 1 deletion.
39 changes: 38 additions & 1 deletion src/exp/grpcroute.rs
Original file line number Diff line number Diff line change
Expand Up @@ -409,6 +409,27 @@ pub enum GrpcRouteFilter {
},
}

impl From<GrpcRouteFilter> for HttpRouteFilter {
fn from(filter: GrpcRouteFilter) -> Self {
match filter {
GrpcRouteFilter::ExtensionRef { extension_ref } => Self::ExtensionRef { extension_ref },
GrpcRouteFilter::RequestMirror { request_mirror } => {
Self::RequestMirror { request_mirror }
}
GrpcRouteFilter::RequestHeaderModifier {
request_header_modifier,
} => Self::RequestHeaderModifier {
request_header_modifier,
},
GrpcRouteFilter::ResponseHeaderModifier {
response_header_modifier,
} => Self::ResponseHeaderModifier {
response_header_modifier,
},
}
}
}

/// GrpcBackendRef defines how a GrpcRoute forwards a gRPC request.
///
/// Note that when a namespace different from the local namespace is specified, a
Expand Down Expand Up @@ -461,7 +482,23 @@ pub struct GrpcRouteBackendRef {
///
/// Support for this field varies based on the context where used.
#[serde(default, skip_serializing_if = "Option::is_none")]
pub weight: Option<i32>,
pub weight: Option<u16>,
}

impl From<GrpcRouteBackendRef> for HttpBackendRef {
fn from(backend: GrpcRouteBackendRef) -> Self {
let filters = backend
.filters
.map(|filters| filters.into_iter().map(Into::into).collect());

Self {
filters,
backend_ref: Some(BackendRef {
inner: backend.inner,
weight: backend.weight,
}),
}
}
}

#[cfg(test)]
Expand Down

0 comments on commit 73af013

Please sign in to comment.