fn try_from()

in src/protocol/resp/src/request/get.rs [18:50]


    fn try_from(other: Message) -> Result<Self, Error> {
        if let Message::Array(array) = other {
            if array.inner.is_none() {
                return Err(Error::new(ErrorKind::Other, "malformed command"));
            }

            let mut array = array.inner.unwrap();

            if array.len() != 2 {
                return Err(Error::new(ErrorKind::Other, "malformed command"));
            }

            let key = if let Message::BulkString(key) = array.remove(1) {
                if key.inner.is_none() {
                    return Err(Error::new(ErrorKind::Other, "malformed command"));
                }

                let key = key.inner.unwrap();

                if key.len() == 0 {
                    return Err(Error::new(ErrorKind::Other, "malformed command"));
                }

                key
            } else {
                return Err(Error::new(ErrorKind::Other, "malformed command"));
            };

            Ok(Self { key })
        } else {
            Err(Error::new(ErrorKind::Other, "malformed command"))
        }
    }