commands/seekcur: fix parser
This commit is contained in:
@@ -31,9 +31,8 @@ impl CommandRequest<'_> for SeekCurRequest {
|
||||
fn serialize(&self) -> String {
|
||||
let time_str = match self.mode {
|
||||
SeekMode::Absolute => format!("{}", self.time),
|
||||
SeekMode::Relative if self.time >= 0.0 => format!("+{}", self.time),
|
||||
SeekMode::Relative => format!("-{}", -self.time),
|
||||
SeekMode::RelativeReverse => unimplemented!(), // TODO: should this happen?
|
||||
SeekMode::Relative => format!("+{}", self.time),
|
||||
SeekMode::RelativeReverse => format!("-{}", self.time),
|
||||
};
|
||||
|
||||
format!("{} {}", Self::COMMAND, time_str)
|
||||
@@ -45,6 +44,8 @@ impl CommandRequest<'_> for SeekCurRequest {
|
||||
None => return Err(RequestParserError::UnexpectedEOF),
|
||||
};
|
||||
|
||||
debug_assert!(parts.next().is_none());
|
||||
|
||||
// TODO: DRY
|
||||
let (mode, time) = match time_raw {
|
||||
t if t.starts_with('+') => (
|
||||
@@ -54,8 +55,8 @@ impl CommandRequest<'_> for SeekCurRequest {
|
||||
.map_err(|_| RequestParserError::SyntaxError(0, t.to_owned()))?,
|
||||
),
|
||||
t if t.starts_with('-') => (
|
||||
SeekMode::Relative,
|
||||
-t[1..]
|
||||
SeekMode::RelativeReverse,
|
||||
t[1..]
|
||||
.parse::<TimeWithFractions>()
|
||||
.map_err(|_| RequestParserError::SyntaxError(0, t.to_owned()))?,
|
||||
),
|
||||
@@ -66,7 +67,7 @@ impl CommandRequest<'_> for SeekCurRequest {
|
||||
),
|
||||
};
|
||||
|
||||
debug_assert!(parts.next().is_none());
|
||||
debug_assert!(time >= 0.0);
|
||||
|
||||
Ok(SeekCurRequest { mode, time })
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user