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}