Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. use std::io::Result;
  2. use serde;
  3. #[macro_use] extern crate serde_derive;
  4.  
  5. #[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
  6. #[serde(untagged)]
  7. pub enum Aud {
  8. One(String),
  9. Many(Vec<String>),
  10. }
  11.  
  12. fn aud_from_json(data: &Aud) -> Result<String> {
  13. match data {
  14. Aud::One(audience) => Ok(audience.clone()),
  15. Aud::Many(audiences) => audiences
  16. .last()
  17. .ok_or(std::io::Error::new(std::io::ErrorKind::NotFound, "No audience found"))
  18. .map(|r| r.clone())
  19. }
  20. }
  21.  
  22. #[test]
  23. fn works() {
  24. let aud = Aud::One("CBr3zBlrKBbwmxOAM1avZQ==".to_string());
  25. let serialized = aud_from_json(&aud).unwrap();
  26. assert_eq!(aud_from_json(&aud).unwrap(), "CBr3zBlrKBbwmxOAM1avZQ==".to_string());
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement