sort_rev.rs 954 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. use crate::FieldTypeRevision;
  2. use serde::{Deserialize, Serialize};
  3. use serde_repr::*;
  4. #[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq, Eq, Hash)]
  5. pub struct SortRevision {
  6. pub id: String,
  7. pub field_id: String,
  8. pub field_type: FieldTypeRevision,
  9. pub condition: SortCondition,
  10. }
  11. #[derive(Serialize_repr, Deserialize_repr, PartialEq, Eq, Hash, Clone, Debug)]
  12. #[repr(u8)]
  13. pub enum SortCondition {
  14. Ascending = 0,
  15. Descending = 1,
  16. }
  17. impl std::convert::From<u8> for SortCondition {
  18. fn from(num: u8) -> Self {
  19. match num {
  20. 0 => SortCondition::Ascending,
  21. 1 => SortCondition::Descending,
  22. _ => SortCondition::Ascending,
  23. }
  24. }
  25. }
  26. impl std::default::Default for SortCondition {
  27. fn default() -> Self {
  28. Self::Ascending
  29. }
  30. }
  31. impl std::convert::From<SortCondition> for u8 {
  32. fn from(condition: SortCondition) -> Self {
  33. condition as u8
  34. }
  35. }