trash.rs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. use collab_folder::core::TrashInfo;
  2. use flowy_derive::ProtoBuf;
  3. #[derive(Eq, PartialEq, ProtoBuf, Default, Debug, Clone)]
  4. pub struct TrashPB {
  5. #[pb(index = 1)]
  6. pub id: String,
  7. #[pb(index = 2)]
  8. pub name: String,
  9. #[pb(index = 3)]
  10. pub modified_time: i64,
  11. #[pb(index = 4)]
  12. pub create_time: i64,
  13. }
  14. impl std::convert::From<TrashInfo> for TrashPB {
  15. fn from(trash_info: TrashInfo) -> Self {
  16. TrashPB {
  17. id: trash_info.id,
  18. name: trash_info.name,
  19. modified_time: trash_info.created_at,
  20. create_time: trash_info.created_at,
  21. }
  22. }
  23. }
  24. impl std::convert::From<TrashPB> for TrashInfo {
  25. fn from(trash: TrashPB) -> Self {
  26. TrashInfo {
  27. id: trash.id,
  28. name: trash.name,
  29. created_at: trash.create_time,
  30. }
  31. }
  32. }
  33. #[derive(PartialEq, Eq, Debug, Default, ProtoBuf, Clone)]
  34. pub struct RepeatedTrashPB {
  35. #[pb(index = 1)]
  36. pub items: Vec<TrashPB>,
  37. }
  38. impl std::convert::From<Vec<TrashInfo>> for RepeatedTrashPB {
  39. fn from(trash_revs: Vec<TrashInfo>) -> Self {
  40. let items: Vec<TrashPB> = trash_revs
  41. .into_iter()
  42. .map(|trash_rev| trash_rev.into())
  43. .collect();
  44. RepeatedTrashPB { items }
  45. }
  46. }
  47. #[derive(PartialEq, Eq, ProtoBuf, Default, Debug, Clone)]
  48. pub struct TrashIdPB {
  49. #[pb(index = 1)]
  50. pub id: String,
  51. }
  52. impl std::convert::From<&TrashInfo> for TrashIdPB {
  53. fn from(trash_info: &TrashInfo) -> Self {
  54. TrashIdPB {
  55. id: trash_info.id.clone(),
  56. }
  57. }
  58. }
  59. #[derive(PartialEq, Eq, ProtoBuf, Default, Debug, Clone)]
  60. pub struct RepeatedTrashIdPB {
  61. #[pb(index = 1)]
  62. pub items: Vec<TrashIdPB>,
  63. }