From 5c3a815ba87b50eaa4c3055bae5807748e8014ef Mon Sep 17 00:00:00 2001 From: kageru Date: Sat, 20 Jun 2020 22:08:33 +0200 Subject: [PATCH] clean up imports --- src/error.rs | 8 ++++++++ src/main.rs | 19 +++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/error.rs b/src/error.rs index ba73f9f..376ca34 100644 --- a/src/error.rs +++ b/src/error.rs @@ -8,6 +8,14 @@ pub struct Error { pub message: String, } +impl Error { + pub fn from_str(message: &str) -> Self { + Error { + message: message.to_string(), + } + } +} + impl de::Error for Error { fn custom(msg: T) -> Self { Error { diff --git a/src/main.rs b/src/main.rs index 309c7b1..0ff3fd2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,13 +2,14 @@ use serde::de; use serde::de::value::MapDeserializer; use serde::forward_to_deserialize_any; use serde::Deserialize; +use std::collections::HashMap; use std::fmt; use std::time::Duration; mod error; -use error::MpdResult; +use error::{MpdResult,Error}; struct MPDeserializer<'de, Iter: Iterator> { - inner: MapDeserializer<'de, Iter, error::Error>, + inner: MapDeserializer<'de, Iter, Error>, } /// Deserialize time from an integer that represents the seconds. @@ -89,7 +90,7 @@ const SEPARATOR: char = '\x02'; impl<'de, Iter: Iterator> de::Deserializer<'de> for MPDeserializer<'de, Iter> { - type Error = error::Error; + type Error = Error; fn deserialize_any(self, visitor: V) -> MpdResult where @@ -136,15 +137,13 @@ where deserializer.deserialize_any(StringOrVec()) } -fn deserialize_response<'a, I: Iterator>(input: I) -> Result { - let mut map: std::collections::HashMap = std::collections::HashMap::new(); +fn deserialize_response<'a, I: Iterator>(input: I) -> Result { + let mut map: HashMap = HashMap::new(); for line in input { - if let Some(_) = line.strip_prefix("OK") { + if line.starts_with("OK") { break; } else if let Some(message) = line.strip_prefix("ACK") { - return Err(error::Error { - message: message.trim().to_string(), - }); + return Err(Error::from_str(message.trim())); } let mut fields = line.splitn(2, ": "); match (fields.next(), fields.next()) { @@ -167,7 +166,7 @@ fn deserialize_response<'a, I: Iterator>(input: I) -> Result