setting_builder.rs 975 B

123456789101112131415161718192021222324252627282930313233
  1. use crate::entities::{DeleteFilterParams, GridLayout, GridSettingChangesetParams, InsertFilterParams};
  2. pub struct GridSettingChangesetBuilder {
  3. params: GridSettingChangesetParams,
  4. }
  5. impl GridSettingChangesetBuilder {
  6. pub fn new(grid_id: &str, layout_type: &GridLayout) -> Self {
  7. let params = GridSettingChangesetParams {
  8. grid_id: grid_id.to_string(),
  9. layout_type: layout_type.clone().into(),
  10. insert_filter: None,
  11. delete_filter: None,
  12. insert_group: None,
  13. delete_group: None,
  14. };
  15. Self { params }
  16. }
  17. pub fn insert_filter(mut self, params: InsertFilterParams) -> Self {
  18. self.params.insert_filter = Some(params);
  19. self
  20. }
  21. pub fn delete_filter(mut self, params: DeleteFilterParams) -> Self {
  22. self.params.delete_filter = Some(params);
  23. self
  24. }
  25. pub fn build(self) -> GridSettingChangesetParams {
  26. self.params
  27. }
  28. }