trash_id.rs 709 B

1234567891011121314151617181920212223242526272829303132
  1. #[derive(Debug)]
  2. pub struct TrashIdentify(pub String);
  3. impl TrashIdentify {
  4. pub fn parse(s: String) -> Result<TrashIdentify, String> {
  5. if s.trim().is_empty() {
  6. return Err("Trash id can not be empty or whitespace".to_string());
  7. }
  8. Ok(Self(s))
  9. }
  10. }
  11. impl AsRef<str> for TrashIdentify {
  12. fn as_ref(&self) -> &str {
  13. &self.0
  14. }
  15. }
  16. #[derive(Debug)]
  17. pub struct TrashIds(pub Vec<String>);
  18. impl TrashIds {
  19. pub fn parse(ids: Vec<String>) -> Result<TrashIds, String> {
  20. let mut trash_ids = vec![];
  21. for id in ids {
  22. let id = TrashIdentify::parse(id)?;
  23. trash_ids.push(id.0);
  24. }
  25. Ok(Self(trash_ids))
  26. }
  27. }