row_loader.rs 853 B

12345678910111213141516171819202122232425262728293031323334
  1. use crate::entities::RowPB;
  2. use grid_rev_model::RowRevision;
  3. use std::sync::Arc;
  4. pub struct GridBlockRowRevision {
  5. pub(crate) block_id: String,
  6. pub row_revs: Vec<Arc<RowRevision>>,
  7. }
  8. pub struct GridBlockRow {
  9. pub block_id: String,
  10. pub row_ids: Vec<String>,
  11. }
  12. impl GridBlockRow {
  13. pub fn new(block_id: String, row_ids: Vec<String>) -> Self {
  14. Self { block_id, row_ids }
  15. }
  16. }
  17. pub(crate) fn make_row_from_row_rev(row_rev: Arc<RowRevision>) -> RowPB {
  18. make_rows_from_row_revs(&[row_rev]).pop().unwrap()
  19. }
  20. pub(crate) fn make_rows_from_row_revs(row_revs: &[Arc<RowRevision>]) -> Vec<RowPB> {
  21. let make_row = |row_rev: &Arc<RowRevision>| RowPB {
  22. block_id: row_rev.block_id.clone(),
  23. id: row_rev.id.clone(),
  24. height: row_rev.height,
  25. };
  26. row_revs.iter().map(make_row).collect::<Vec<_>>()
  27. }