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.try_into().unwrap_or(-1),
13            type_: layer.type_,
14            name: layer.name,
15            order_index: layer.order_index,
16            marked_deleted: layer.marked_deleted.is_some(),
17        }
18    }
19}
20
21impl From<(i64, LayerDto)> for Layer {
22    fn from(tuple: (i64, LayerDto)) -> Self {
23        let (map_id, dto) = tuple;
24        Self {
25            id: dto.id,
26            map_id,
27            type_: dto.type_,
28            name: dto.name,
29            order_index: dto.order_index,
30            // Cannot create a new layer that is marked deleted anyway.
31            marked_deleted: None,
32        }
33    }
34}
35
36impl From<LayerRenameDto> for UpdateLayerName {
37    fn from(dto: LayerRenameDto) -> Self {
38        Self {
39            id: dto.id,
40            name: dto.name,
41        }
42    }
43}