kittycad_modeling_cmds/format/
obj.rs1use parse_display::{Display, FromStr};
2use schemars::JsonSchema;
3use serde::{Deserialize, Serialize};
4
5use crate::{coord, units::UnitLength};
6
7pub mod import {
9    use super::*;
10
11    #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize, JsonSchema, Display, FromStr)]
13    #[display("coords: {coords}, units: {units}")]
14    #[serde(rename = "ObjImportOptions")]
15    #[cfg_attr(feature = "ts-rs", derive(ts_rs::TS))]
16    #[cfg_attr(feature = "ts-rs", ts(export_to = "ModelingCmd.ts"))]
17    pub struct Options {
18        pub coords: coord::System,
24
25        pub units: UnitLength,
32    }
33
34    impl Default for Options {
35        fn default() -> Self {
36            Self {
37                coords: *coord::KITTYCAD,
38                units: UnitLength::Millimeters,
39            }
40        }
41    }
42}
43
44pub mod export {
46    use super::*;
47
48    #[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize, JsonSchema, Display, FromStr)]
50    #[display("coords: {coords}, units: {units}")]
51    #[serde(rename = "ObjExportOptions")]
52    #[cfg_attr(feature = "ts-rs", derive(ts_rs::TS))]
53    #[cfg_attr(feature = "ts-rs", ts(export_to = "ModelingCmd.ts"))]
54    pub struct Options {
55        pub coords: coord::System,
61
62        pub units: UnitLength,
66    }
67
68    impl Default for Options {
69        fn default() -> Self {
70            Self {
71                coords: *coord::KITTYCAD,
72                units: UnitLength::Millimeters,
73            }
74        }
75    }
76}