1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use geo::{GeoNum, LineString};
pub struct MonoPoly<T: GeoNum> {
top: LineString<T>,
bot: LineString<T>,
}
impl<T: GeoNum> MonoPoly<T> {
pub fn new(top: LineString<T>, bot: LineString<T>) -> Self {
assert_eq!(top.0.first(), bot.0.first());
assert_eq!(top.0.last(), bot.0.last());
assert_ne!(top.0.first(), top.0.last());
Self { top, bot }
}
#[must_use]
pub fn top(&self) -> &LineString<T> {
&self.top
}
#[must_use]
pub fn bot(&self) -> &LineString<T> {
&self.bot
}
pub fn into_ls_pair(self) -> (LineString<T>, LineString<T>) {
(self.top, self.bot)
}
}