backend/model/dto/
layer_impl.rs

1//! Contains the implementation of [`LayerDto`].
2
3use crate::model::{
4    dto::layers::{LayerDto, LayerRenameDto},
5    entity::layers::{Layer, UpdateLayerName},
6};
7
8impl From<Layer> for LayerDto {
9    fn from(layer: Layer) -> Self {
10        Self {
11            id: layer.id,
12            map_id: layer.map_id,
13            type_: layer.type_,
14            name: layer.name,
15            is_alternative: layer.is_alternative,
16            order_index: layer.order_index,
17            marked_deleted: layer.marked_deleted.is_some(),
18        }
19    }
20}
21
22impl From<(i32, LayerDto)> for Layer {
23    fn from(tuple: (i32, LayerDto)) -> Self {
24        let (map_id, dto) = tuple;
25        Self {
26            id: dto.id,
27            map_id,
28            type_: dto.type_,
29            name: dto.name,
30            is_alternative: dto.is_alternative,
31            order_index: dto.order_index,
32            // Cannot create a new layer that is marked deleted anyway.
33            marked_deleted: None,
34        }
35    }
36}
37
38impl From<LayerRenameDto> for UpdateLayerName {
39    fn from(dto: LayerRenameDto) -> Self {
40        Self {
41            id: dto.id,
42            name: dto.name,
43        }
44    }
45}