refactor(command_parser): move parameter fmt to Parameter types Display impl

This commit is contained in:
dusk 2025-01-24 05:16:15 +09:00
parent 58d493ac0a
commit e3778b9bb8
No known key found for this signature in database
3 changed files with 43 additions and 36 deletions

View file

@ -1,4 +1,7 @@
use std::{fmt::Debug, str::FromStr};
use std::{
fmt::{Debug, Display},
str::FromStr,
};
use smol_str::SmolStr;
@ -30,6 +33,21 @@ impl Parameter {
}
}
impl Display for Parameter {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self.kind {
ParameterKind::OpaqueString | ParameterKind::OpaqueStringRemainder => {
write!(f, "[{}]", self.name)
}
ParameterKind::MemberRef => write!(f, "<target member>"),
ParameterKind::SystemRef => write!(f, "<target system>"),
ParameterKind::MemberPrivacyTarget => write!(f, "<privacy target>"),
ParameterKind::PrivacyLevel => write!(f, "[privacy level]"),
ParameterKind::Toggle => write!(f, "on/off"),
}
}
}
impl From<ParameterKind> for Parameter {
fn from(value: ParameterKind) -> Self {
Parameter {
@ -76,19 +94,6 @@ impl ParameterKind {
matches!(self, ParameterKind::OpaqueStringRemainder)
}
pub(crate) fn format(&self, f: &mut std::fmt::Formatter, param_name: &str) -> std::fmt::Result {
match self {
ParameterKind::OpaqueString | ParameterKind::OpaqueStringRemainder => {
write!(f, "[{param_name}]")
}
ParameterKind::MemberRef => write!(f, "<target member>"),
ParameterKind::SystemRef => write!(f, "<target system>"),
ParameterKind::MemberPrivacyTarget => write!(f, "<privacy target>"),
ParameterKind::PrivacyLevel => write!(f, "[privacy level]"),
ParameterKind::Toggle => write!(f, "on/off"),
}
}
pub(crate) fn match_value(&self, input: &str) -> Result<ParameterValue, SmolStr> {
match self {
ParameterKind::OpaqueString | ParameterKind::OpaqueStringRemainder => {