1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
4pub enum CompatMode {
5 #[serde(rename = "runmat")]
6 RunMat,
7 #[default]
8 #[serde(rename = "matlab")]
9 Matlab,
10 #[serde(rename = "strict")]
11 Strict,
12}
13
14#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
15pub struct ParserOptions {
16 #[serde(default)]
17 pub compat_mode: CompatMode,
18}
19
20impl Default for ParserOptions {
21 fn default() -> Self {
22 Self {
23 compat_mode: CompatMode::Matlab,
24 }
25 }
26}
27
28impl ParserOptions {
29 pub fn new(compat_mode: CompatMode) -> Self {
30 Self { compat_mode }
31 }
32}
33
34impl CompatMode {
35 pub fn allows_runmat_extensions(self) -> bool {
37 !matches!(self, Self::Strict)
38 }
39}