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