diff --git a/src/cli.rs b/src/cli.rs index c2ba11f..3782ab2 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -34,11 +34,19 @@ struct Args { action: Action, } -fn convert_kind(kind_arg: &NotationKindArg) -> NotationKind { - match kind_arg { +impl Into for NotationKindArg { + fn into(self) -> NotationKind { + (&self).into() + } +} + +impl Into for &NotationKindArg { + fn into(self) -> NotationKind { + match self { NotationKindArg::Iso => NotationKind::Iso, NotationKindArg::Uns => NotationKind::Uns, NotationKindArg::Alphanumeric => NotationKind::Alphanumeric, + } } } @@ -47,10 +55,10 @@ pub fn run_cli() { match &args.action { Action::Convert { from, to, value } => { - let tooth_result = Tooth::from(value, &convert_kind(from)); + let tooth_result = Tooth::from(value, &from.into()); let output_string = match tooth_result { - Ok(tooth) => tooth.to(&convert_kind(to)), + Ok(tooth) => tooth.to(&to.into()), Err(err) => err, };