Skip to content

Commit

Permalink
Move some code around
Browse files Browse the repository at this point in the history
Signed-off-by: Mikail Bagishov <bagishov.mikail@yandex.ru>
  • Loading branch information
MikailBag committed Sep 6, 2022
1 parent 1b2cef4 commit ff50777
Showing 1 changed file with 35 additions and 35 deletions.
70 changes: 35 additions & 35 deletions kube-core/src/conversion/types.rs
Expand Up @@ -52,21 +52,21 @@ pub struct ConversionRequest {
impl ConversionRequest {
/// Extracts request from the [`ConversionReview`]
pub fn from_review(review: ConversionReview) -> Result<Self, ConvertConversionReviewError> {
match review.request {
Some(mut req) => {
req.types = Some(review.types);
Ok(req)
}
None => Err(ConvertConversionReviewError),
}
ConversionRequest::try_from(review)
}
}

impl TryFrom<ConversionReview> for ConversionRequest {
type Error = ConvertConversionReviewError;

fn try_from(review: ConversionReview) -> Result<Self, Self::Error> {
ConversionRequest::from_review(review)
match review.request {
Some(mut req) => {
req.types = Some(review.types);
Ok(req)
}
None => Err(ConvertConversionReviewError),
}
}
}

Expand Down Expand Up @@ -122,18 +122,7 @@ impl ConversionResponse {
/// - [`ConversionResponse::success`] when conversion succeeded
/// - [`ConversionResponse::failure`] when conversion failed
pub fn for_request(request: ConversionRequest) -> Self {
ConversionResponse {
types: request.types,
uid: request.uid,
result: Status {
status: None,
code: 0,
message: String::new(),
reason: String::new(),
details: None,
},
converted_objects: Vec::new(),
}
ConversionResponse::from(request)
}

/// Creates successful conversion response
Expand Down Expand Up @@ -168,30 +157,41 @@ impl ConversionResponse {
}

/// Converts response into a [`ConversionReview`] value, ready to be sent as a response
pub fn into_review(mut self) -> ConversionReview {
ConversionReview {
types: self.types.take().unwrap_or_else(|| {
// we don't know which uid, apiVersion and kind to use, let's just use something
TypeMeta {
api_version: META_API_VERSION_V1.to_string(),
kind: META_KIND.to_string(),
}
}),
request: None,
response: Some(self),
}
pub fn into_review(self) -> ConversionReview {
self.into()
}
}

impl From<ConversionRequest> for ConversionResponse {
fn from(request: ConversionRequest) -> Self {
ConversionResponse::for_request(request)
ConversionResponse {
types: request.types,
uid: request.uid,
result: Status {
status: None,
code: 0,
message: String::new(),
reason: String::new(),
details: None,
},
converted_objects: Vec::new(),
}
}
}

impl From<ConversionResponse> for ConversionReview {
fn from(response: ConversionResponse) -> Self {
response.into_review()
fn from(mut response: ConversionResponse) -> Self {
ConversionReview {
types: response.types.take().unwrap_or_else(|| {
// we don't know which uid, apiVersion and kind to use, let's just use something
TypeMeta {
api_version: META_API_VERSION_V1.to_string(),
kind: META_KIND.to_string(),
}
}),
request: None,
response: Some(response),
}
}
}

Expand Down

0 comments on commit ff50777

Please sign in to comment.