/ 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 }