@@ -9,6 +9,7 @@ use std::{borrow::Cow, str::FromStr, thread::sleep};
99use bytemuck:: { Pod , Zeroable , __core:: time:: Duration } ;
1010use esp_idf_part:: PartitionTable ;
1111use log:: { debug, info, warn} ;
12+ use serde:: { Deserialize , Serialize } ;
1213use serialport:: UsbPortInfo ;
1314use strum:: { Display , EnumIter , EnumVariantNames } ;
1415
@@ -39,7 +40,19 @@ const FLASH_SECTORS_PER_BLOCK: usize = FLASH_SECTOR_SIZE / FLASH_BLOCK_SIZE;
3940///
4041/// Note that not all frequencies are supported by each target device.
4142#[ cfg_attr( feature = "cli" , derive( clap:: ValueEnum ) ) ]
42- #[ derive( Debug , Default , Clone , Copy , Hash , PartialEq , Eq , Display , EnumVariantNames ) ]
43+ #[ derive(
44+ Debug ,
45+ Default ,
46+ Clone ,
47+ Copy ,
48+ Hash ,
49+ PartialEq ,
50+ Eq ,
51+ Display ,
52+ EnumVariantNames ,
53+ Serialize ,
54+ Deserialize ,
55+ ) ]
4356#[ non_exhaustive]
4457#[ repr( u8 ) ]
4558pub enum FlashFrequency {
@@ -85,7 +98,7 @@ impl FlashFrequency {
8598
8699/// Supported flash modes
87100#[ cfg_attr( feature = "cli" , derive( clap:: ValueEnum ) ) ]
88- #[ derive( Copy , Clone , Debug , Default , EnumVariantNames ) ]
101+ #[ derive( Copy , Clone , Debug , Default , EnumVariantNames , Serialize , Deserialize ) ]
89102#[ non_exhaustive]
90103#[ strum( serialize_all = "lowercase" ) ]
91104pub enum FlashMode {
@@ -104,7 +117,19 @@ pub enum FlashMode {
104117///
105118/// Note that not all sizes are supported by each target device.
106119#[ cfg_attr( feature = "cli" , derive( clap:: ValueEnum ) ) ]
107- #[ derive( Clone , Copy , Debug , Default , Eq , PartialEq , Display , EnumVariantNames , EnumIter ) ]
120+ #[ derive(
121+ Clone ,
122+ Copy ,
123+ Debug ,
124+ Default ,
125+ Eq ,
126+ PartialEq ,
127+ Display ,
128+ EnumVariantNames ,
129+ EnumIter ,
130+ Serialize ,
131+ Deserialize ,
132+ ) ]
108133#[ non_exhaustive]
109134#[ repr( u8 ) ]
110135#[ strum( serialize_all = "SCREAMING_SNAKE_CASE" ) ]
0 commit comments