jingle: Simplify the FromStr using match.

This commit is contained in:
Emmanuel Gil Peyrot 2017-04-23 03:41:26 +01:00
commit 90db24eed8

View file

@ -30,39 +30,25 @@ impl FromStr for Action {
type Err = Error; type Err = Error;
fn from_str(s: &str) -> Result<Action, Error> { fn from_str(s: &str) -> Result<Action, Error> {
if s == "content-accept" { Ok(match s {
Ok(Action::ContentAccept) "content-accept" => Action::ContentAccept,
} else if s == "content-add" { "content-add" => Action::ContentAdd,
Ok(Action::ContentAdd) "content-modify" => Action::ContentModify,
} else if s == "content-modify" { "content-reject" => Action::ContentReject,
Ok(Action::ContentModify) "content-remove" => Action::ContentRemove,
} else if s == "content-reject" { "description-info" => Action::DescriptionInfo,
Ok(Action::ContentReject) "security-info" => Action::SecurityInfo,
} else if s == "content-remove" { "session-accept" => Action::SessionAccept,
Ok(Action::ContentRemove) "session-info" => Action::SessionInfo,
} else if s == "description-info" { "session-initiate" => Action::SessionInitiate,
Ok(Action::DescriptionInfo) "session-terminate" => Action::SessionTerminate,
} else if s == "security-info" { "transport-accept" => Action::TransportAccept,
Ok(Action::SecurityInfo) "transport-info" => Action::TransportInfo,
} else if s == "session-accept" { "transport-reject" => Action::TransportReject,
Ok(Action::SessionAccept) "transport-replace" => Action::TransportReplace,
} else if s == "session-info" {
Ok(Action::SessionInfo) _ => return Err(Error::ParseError("Unknown action.")),
} else if s == "session-initiate" { })
Ok(Action::SessionInitiate)
} else if s == "session-terminate" {
Ok(Action::SessionTerminate)
} else if s == "transport-accept" {
Ok(Action::TransportAccept)
} else if s == "transport-info" {
Ok(Action::TransportInfo)
} else if s == "transport-reject" {
Ok(Action::TransportReject)
} else if s == "transport-replace" {
Ok(Action::TransportReplace)
} else {
Err(Error::ParseError("Unknown action."))
}
} }
} }
@ -79,13 +65,12 @@ impl FromStr for Creator {
type Err = Error; type Err = Error;
fn from_str(s: &str) -> Result<Creator, Error> { fn from_str(s: &str) -> Result<Creator, Error> {
if s == "initiator" { Ok(match s {
Ok(Creator::Initiator) "initiator" => Creator::Initiator,
} else if s == "responder" { "responder" => Creator::Responder,
Ok(Creator::Responder)
} else { _ => return Err(Error::ParseError("Unknown creator.")),
Err(Error::ParseError("Unknown creator.")) })
}
} }
} }
@ -101,17 +86,14 @@ impl FromStr for Senders {
type Err = Error; type Err = Error;
fn from_str(s: &str) -> Result<Senders, Error> { fn from_str(s: &str) -> Result<Senders, Error> {
if s == "both" { Ok(match s {
Ok(Senders::Both) "both" => Senders::Both,
} else if s == "initiator" { "initiator" => Senders::Initiator,
Ok(Senders::Initiator) "none" => Senders::None_,
} else if s == "none" { "responder" => Senders::Responder,
Ok(Senders::None_)
} else if s == "responder" { _ => return Err(Error::ParseError("Unknown senders.")),
Ok(Senders::Responder) })
} else {
Err(Error::ParseError("Unknown senders."))
}
} }
} }
@ -151,43 +133,27 @@ impl FromStr for Reason {
type Err = Error; type Err = Error;
fn from_str(s: &str) -> Result<Reason, Error> { fn from_str(s: &str) -> Result<Reason, Error> {
if s == "alternative-session" { Ok(match s {
Ok(Reason::AlternativeSession) "alternative-session" => Reason::AlternativeSession,
} else if s == "busy" { "busy" => Reason::Busy,
Ok(Reason::Busy) "cancel" => Reason::Cancel,
} else if s == "cancel" { "connectivity-error" => Reason::ConnectivityError,
Ok(Reason::Cancel) "decline" => Reason::Decline,
} else if s == "connectivity-error" { "expired" => Reason::Expired,
Ok(Reason::ConnectivityError) "failed-application" => Reason::FailedApplication,
} else if s == "decline" { "failed-transport" => Reason::FailedTransport,
Ok(Reason::Decline) "general-error" => Reason::GeneralError,
} else if s == "expired" { "gone" => Reason::Gone,
Ok(Reason::Expired) "incompatible-parameters" => Reason::IncompatibleParameters,
} else if s == "failed-application" { "media-error" => Reason::MediaError,
Ok(Reason::FailedApplication) "security-error" => Reason::SecurityError,
} else if s == "failed-transport" { "success" => Reason::Success,
Ok(Reason::FailedTransport) "timeout" => Reason::Timeout,
} else if s == "general-error" { "unsupported-applications" => Reason::UnsupportedApplications,
Ok(Reason::GeneralError) "unsupported-transports" => Reason::UnsupportedTransports,
} else if s == "gone" {
Ok(Reason::Gone) _ => return Err(Error::ParseError("Unknown reason.")),
} else if s == "incompatible-parameters" { })
Ok(Reason::IncompatibleParameters)
} else if s == "media-error" {
Ok(Reason::MediaError)
} else if s == "security-error" {
Ok(Reason::SecurityError)
} else if s == "success" {
Ok(Reason::Success)
} else if s == "timeout" {
Ok(Reason::Timeout)
} else if s == "unsupported-applications" {
Ok(Reason::UnsupportedApplications)
} else if s == "unsupported-transports" {
Ok(Reason::UnsupportedTransports)
} else {
Err(Error::ParseError("Unknown reason."))
}
} }
} }