>source

다음 열거 형이 있다고 가정 해 보겠습니다.

#[derive(Serialize)]
#[serde(untagged)]
pub enum CustomType {
    Foo(Foo),
    Bar(Bar),
}

다른 매개 변수 유형에 대해 동일한 방식으로 작동하는 함수를 가지려면 :

fn my_function(my_param: &
CustomType){
  //logic to use "my_param"
  //my_param is used for the handlebars crate, therefore requires to be Serde Serializable
 let source= //...
 handlebars.render_template(&
source, my_param).unwrap();
}

다음과 같이 프로그램의 다른 부분에서 이러한 함수를 호출하려고합니다.

fn function_a(bar: &
Bar){
  my_function(CustomType::Bar(bar.clone()));
}
fn function_b(foo: &
Foo){
  my_function(CustomType::Foo(foo.clone()));
}

이 code는 작동하지만 정말 마음에 들지 않습니다..clone (). 이미 참조 만 전달하려고 시도했지만 열거 형에서는 작동하지 않습니다.

이것은 Rust에서 올바른 방법입니까?

관련 자료

  • 이전 python - Pytorch에서 텐서가 cuda에 있는지 확인하는 방법은 무엇입니까?
  • 다음 java - Quarkus를 사용하여 수동으로 사용자 로그인