view_rev.rs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. use crate::entities::view::{View, ViewDataType};
  2. use crate::entities::{RepeatedView, TrashType};
  3. use crate::revision::TrashRevision;
  4. use serde::{Deserialize, Serialize};
  5. #[derive(Default, Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
  6. pub struct ViewRevision {
  7. pub id: String,
  8. pub belong_to_id: String,
  9. pub name: String,
  10. pub desc: String,
  11. #[serde(default)]
  12. pub data_type: ViewDataType,
  13. pub version: i64,
  14. pub belongings: Vec<ViewRevision>,
  15. pub modified_time: i64,
  16. pub create_time: i64,
  17. #[serde(default)]
  18. pub ext_data: String,
  19. #[serde(default)]
  20. pub thumbnail: String,
  21. #[serde(default = "default_plugin_type")]
  22. pub plugin_type: i32,
  23. }
  24. fn default_plugin_type() -> i32 {
  25. 0
  26. }
  27. impl std::convert::From<ViewRevision> for View {
  28. fn from(view_serde: ViewRevision) -> Self {
  29. View {
  30. id: view_serde.id,
  31. belong_to_id: view_serde.belong_to_id,
  32. name: view_serde.name,
  33. data_type: view_serde.data_type,
  34. modified_time: view_serde.modified_time,
  35. create_time: view_serde.create_time,
  36. plugin_type: view_serde.plugin_type,
  37. }
  38. }
  39. }
  40. impl std::convert::From<ViewRevision> for TrashRevision {
  41. fn from(view_rev: ViewRevision) -> Self {
  42. TrashRevision {
  43. id: view_rev.id,
  44. name: view_rev.name,
  45. modified_time: view_rev.modified_time,
  46. create_time: view_rev.create_time,
  47. ty: TrashType::TrashView,
  48. }
  49. }
  50. }
  51. impl std::convert::From<Vec<ViewRevision>> for RepeatedView {
  52. fn from(values: Vec<ViewRevision>) -> Self {
  53. let items = values.into_iter().map(|value| value.into()).collect::<Vec<View>>();
  54. RepeatedView { items }
  55. }
  56. }