thedes_gen/map/
layer.rs

1use rand::Rng;
2use thedes_domain::{geometry::CoordPair, map::Map};
3
4pub mod region;
5pub mod pointwise;
6
7pub mod matter;
8
9pub trait Layer {
10    type Data;
11    type Error;
12
13    fn get(
14        &self,
15        map: &mut Map,
16        point: CoordPair,
17    ) -> Result<Self::Data, Self::Error>;
18
19    fn set(
20        &self,
21        map: &mut Map,
22        point: CoordPair,
23        value: Self::Data,
24    ) -> Result<(), Self::Error>;
25}
26
27pub trait LayerDistribution {
28    type Data;
29    type Error;
30
31    fn sample<R>(
32        &self,
33        map: &mut Map,
34        point: CoordPair,
35        rng: R,
36    ) -> Result<Self::Data, Self::Error>
37    where
38        R: Rng;
39}