open_vector_tile/base/
vector_tile.rs1use crate::{
2 VectorLayer, VectorTile, base::BaseVectorLayer, mapbox::vector_tile::MapboxVectorTile,
3};
4use alloc::{collections::BTreeMap, string::String};
5
6#[derive(Debug, Default)]
10pub struct BaseVectorTile {
11 pub layers: BTreeMap<String, BaseVectorLayer>,
13}
14impl BaseVectorTile {
15 pub fn add_layer(&mut self, layer: BaseVectorLayer) {
17 self.layers.insert(layer.name.clone(), layer);
18 }
19}
20impl From<&mut VectorTile> for BaseVectorTile {
21 fn from(vector_tile: &mut VectorTile) -> Self {
23 let mut tile = BaseVectorTile { layers: BTreeMap::new() };
24 for (name, layer) in vector_tile.layers.iter_mut() {
25 if let VectorLayer::Mapbox(layer) = layer {
26 tile.layers.insert(name.clone(), layer.into());
27 }
28 }
29 tile
30 }
31}
32impl From<&mut MapboxVectorTile> for BaseVectorTile {
33 fn from(vector_tile: &mut MapboxVectorTile) -> Self {
35 let mut tile = BaseVectorTile { layers: BTreeMap::new() };
36 for (name, layer) in vector_tile.layers.iter_mut() {
37 tile.layers.insert(name.clone(), layer.into());
38 }
39 tile
40 }
41}