/ shared_types / build.rs
build.rs
 1  use crux_core::typegen::TypeGen;
 2  use crux_http::HttpError;
 3  use shared;
 4  use shared::model_ui::screens::input_fields_and_tags::{
 5      UiFieldType, UiRemoteResourceAvailableFields, UiRemoteResourceAvailableTagValues,
 6      UiRemoteResourceAvailableTags,
 7  };
 8  use shared::model_ui::screens::settings_preview_connections_actions::UiPrecision;
 9  use shared::model_ui::screens_common::loading::UiLoadingState;
10  use shared::model_ui::screens_common::remote_multi_choice::remote_resource_multi_choice::UiRemoteResourceMultiChoice;
11  use shared::model_ui::screens_common::remote_multi_choice::user_input_or_multi_select::{
12      UiRemoteResourceUserInputOrMultiChoiceOptions, UiSelectedUserInputOrMultiChoice,
13  };
14  use shared::model_ui::user_messages::UiLevel;
15  use shared::Counter;
16  use shared::{model_ui, screens};
17  use std::path::PathBuf;
18  
19  fn main() -> anyhow::Result<()> {
20      println!("cargo:rerun-if-changed=../shared");
21  
22      let mut gen = TypeGen::new();
23  
24      gen.register_app::<Counter>()?;
25      gen.register_type::<UiPrecision>()?;
26      gen.register_type::<UiFieldType>()?;
27      gen.register_type::<UiLoadingState>()?;
28      gen.register_type::<UiRemoteResourceMultiChoice>()?;
29      gen.register_type::<UiLevel>()?;
30      gen.register_type::<HttpError>()?;
31      gen.register_type::<model_ui::UiScreens>()?;
32      gen.register_type::<UiRemoteResourceAvailableFields>()?;
33      gen.register_type::<UiRemoteResourceAvailableTags>()?;
34      gen.register_type::<UiRemoteResourceAvailableTagValues>()?;
35      gen.register_type::<UiSelectedUserInputOrMultiChoice>()?;
36      gen.register_type::<UiRemoteResourceUserInputOrMultiChoiceOptions>()?;
37      gen.register_type::<screens::select_org_bucket_measurements::DontShowDialogAgain>()?;
38      gen.register_type::<screens::select_org_bucket_measurements::ConfirmUndo>()?;
39  
40      gen.register_type::<screens::initial::ScEvInitial>()?;
41      gen.register_type::<screens::select_org_bucket_measurements::ScEvSelectOrgBucketMeasurement>()?;
42      gen.register_type::<screens::input_fields_and_tags::ScEvInputFieldsAndTags>()?;
43      gen.register_type::<screens::settings::ScEvSettings>()?;
44      gen.register_type::<screens::settings_previous_connections_actions::ScEvSettingPreviousConnections>()?;
45      gen.register_type::<screens::post_write_review::ScEvPostWriteReview>()?;
46      gen.register_type::<shared::global::GlEvGlobal>()?;
47  
48      let output_root = PathBuf::from("./generated");
49  
50      gen.swift("SharedTypes", output_root.join("swift"))?;
51  
52      gen.java(
53          "tech.seanborg.flowlines.shared_types",
54          output_root.join("java"),
55      )?;
56  
57      gen.typescript("shared_types", output_root.join("typescript"))?;
58  
59      Ok(())
60  }