1use crate::Error;
2use crate::Error::InvalidVersion;
3
4pub mod read;
5mod read_impl;
6pub mod write;
7mod write_impl;
8
9pub const FILE_EXTENSION_LAS_FORMAT: &str = "las";
10pub const FILE_EXTENSION_LAZ_FORMAT: &str = "laz";
11
12#[derive(Debug, Clone, PartialEq, Eq, Ord, PartialOrd)]
13pub enum LasVersion {
14 V1_0,
16 V1_1,
18 V1_2,
20 V1_3,
22 V1_4,
24}
25
26impl LasVersion {
27 pub fn from(major: u8, minor: u8) -> Result<Self, Error> {
28 match (major, minor) {
29 (1, 0) => Ok(Self::V1_0),
30 (1, 1) => Ok(Self::V1_1),
31 (1, 2) => Ok(Self::V1_2),
32 (1, 3) => Ok(Self::V1_3),
33 (1, 4) => Ok(Self::V1_4),
34 _ => Err(InvalidVersion { major, minor }),
35 }
36 }
37}