Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::io::Result;
- use serde;
- #[macro_use] extern crate serde_derive;
- #[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
- #[serde(untagged)]
- pub enum Aud {
- One(String),
- Many(Vec<String>),
- }
- fn aud_from_json(data: &Aud) -> Result<String> {
- match data {
- Aud::One(audience) => Ok(audience.clone()),
- Aud::Many(audiences) => audiences
- .last()
- .ok_or(std::io::Error::new(std::io::ErrorKind::NotFound, "No audience found"))
- .map(|r| r.clone())
- }
- }
- #[test]
- fn works() {
- let aud = Aud::One("CBr3zBlrKBbwmxOAM1avZQ==".to_string());
- let serialized = aud_from_json(&aud).unwrap();
- assert_eq!(aud_from_json(&aud).unwrap(), "CBr3zBlrKBbwmxOAM1avZQ==".to_string());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement