Skip to content

Commit bb12e35

Browse files
committed
ts models for vue
1 parent 31f95ca commit bb12e35

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ udp-stream = "0.0.12"
2828
uuid = { version = "1.8", features = ["serde"] }
2929
validator = "0.18.1"
3030
thiserror = "1.0.61"
31+
ts-rs = { version = "9.0.1" , features = ["serde-compat", "uuid-impl"] }
3132

3233
[build-dependencies]
3334
vergen-gix = { version = "1.0.0-beta.2", default-features = false, features = ["build", "cargo"] }

src/device/devices.rs

+17
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use bluerobotics_ping::device::PingDevice;
22
use serde::{Deserialize, Serialize};
33
use tokio::sync::{mpsc, oneshot};
44
use tracing::{error, trace, warn};
5+
use ts_rs::TS;
56

67
pub struct DeviceActor {
78
pub receiver: mpsc::Receiver<DeviceActorRequest>,
@@ -272,6 +273,7 @@ pub enum UpgradeResult {
272273
}
273274

274275
#[derive(Debug, Clone, Serialize, Deserialize)]
276+
#[derive(TS)]
275277
pub enum PingRequest {
276278
Ping1D(Ping1DRequest),
277279
Ping360(Ping360Request),
@@ -282,6 +284,7 @@ pub enum PingRequest {
282284
}
283285

284286
#[derive(Debug, Clone, Serialize, Deserialize)]
287+
#[derive(TS)]
285288
pub enum Ping1DRequest {
286289
DeviceID,
287290
ModeAuto,
@@ -300,33 +303,47 @@ pub enum Ping1DRequest {
300303
GainSetting,
301304
PingEnable,
302305
DistanceSimple,
306+
#[ts(skip)]
303307
SetDeviceId(bluerobotics_ping::ping1d::SetDeviceIdStruct),
308+
#[ts(skip)]
304309
SetModeAuto(bluerobotics_ping::ping1d::SetModeAutoStruct),
310+
#[ts(skip)]
305311
SetPingInterval(bluerobotics_ping::ping1d::SetPingIntervalStruct),
312+
#[ts(skip)]
306313
SetPingEnable(bluerobotics_ping::ping1d::SetPingEnableStruct),
314+
#[ts(skip)]
307315
SetSpeedOfSound(bluerobotics_ping::ping1d::SetSpeedOfSoundStruct),
316+
#[ts(skip)]
308317
SetRange(bluerobotics_ping::ping1d::SetRangeStruct),
318+
#[ts(skip)]
309319
SetGainSetting(bluerobotics_ping::ping1d::SetGainSettingStruct),
320+
#[ts(skip)]
310321
ContinuousStart(bluerobotics_ping::ping1d::ContinuousStartStruct),
322+
#[ts(skip)]
311323
ContinuousStop(bluerobotics_ping::ping1d::ContinuousStopStruct),
324+
#[ts(skip)]
312325
GotoBootloader(bluerobotics_ping::ping1d::GotoBootloaderStruct),
313326
}
314327

315328
#[derive(Debug, Clone, Serialize, Deserialize)]
329+
#[derive(TS)]
316330
pub enum Ping360Request {
317331
MotorOff,
318332
DeviceData,
319333
AutoDeviceData,
334+
#[ts(skip)]
320335
SetDeviceId(bluerobotics_ping::ping1d::SetDeviceIdStruct),
321336
Transducer,
322337
Reset,
323338
AutoTransmit,
324339
}
325340

326341
#[derive(Debug, Clone, Serialize, Deserialize)]
342+
#[derive(TS)]
327343
pub enum PingCommonRequest {
328344
DeviceInformation,
329345
ProtocolVersion,
346+
#[ts(skip)]
330347
SetDeviceId(bluerobotics_ping::common::SetDeviceIdStruct),
331348
}
332349

src/device/manager.rs

+10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use paperclip::actix::Apiv2Schema;
22
use serde::{Deserialize, Serialize};
3+
use ts_rs::TS;
34
use std::{
45
collections::{hash_map::DefaultHasher, HashMap},
56
hash::{Hash, Hasher},
@@ -42,6 +43,7 @@ impl Device {
4243
}
4344

4445
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
46+
#[derive(TS)]
4547
pub enum DeviceSelection {
4648
Common,
4749
Ping1D,
@@ -50,6 +52,7 @@ pub enum DeviceSelection {
5052
}
5153

5254
#[derive(Debug, Clone, Deserialize, Serialize, Hash)]
55+
#[derive(TS)]
5356
pub enum SourceSelection {
5457
UdpStream(SourceUdpStruct),
5558
SerialStream(SourceSerialStruct),
@@ -61,12 +64,14 @@ enum SourceType {
6164
}
6265

6366
#[derive(Clone, Debug, Deserialize, Serialize, Hash, Apiv2Schema)]
67+
#[derive(TS)]
6468
pub struct SourceUdpStruct {
6569
pub ip: Ipv4Addr,
6670
pub port: u16,
6771
}
6872

6973
#[derive(Clone, Debug, Deserialize, Serialize, Hash, Apiv2Schema)]
74+
#[derive(TS)]
7075
pub struct SourceSerialStruct {
7176
pub path: String,
7277
pub baudrate: u32,
@@ -120,6 +125,9 @@ pub struct DeviceAnswer {
120125
}
121126

122127
#[derive(Debug, Clone, Serialize, Deserialize, Apiv2Schema)]
128+
#[derive(TS)]
129+
// #[ts(rename_all = "lowercase")]
130+
#[ts(export, export_to = "RequestModels.ts")]
123131
pub enum Request {
124132
Create(CreateStruct),
125133
Delete(Uuid),
@@ -131,12 +139,14 @@ pub enum Request {
131139
}
132140

133141
#[derive(Debug, Clone, Serialize, Deserialize)]
142+
#[derive(TS)]
134143
pub struct CreateStruct {
135144
pub source: SourceSelection,
136145
pub device_selection: DeviceSelection,
137146
}
138147

139148
#[derive(Debug, Clone, Serialize, Deserialize)]
149+
#[derive(TS)]
140150
pub struct DeviceRequestStruct {
141151
pub target: Uuid,
142152
pub request: crate::device::devices::PingRequest,

0 commit comments

Comments
 (0)