@@ -12,7 +12,7 @@ use libflate::deflate::{Decoder, Encoder};
12
12
use log:: error;
13
13
use once_cell:: sync:: Lazy ;
14
14
use regex:: Regex ;
15
- use revision:: revisioned;
15
+ use revision:: { revisioned, Error } ;
16
16
use rinja:: Template ;
17
17
use rust_embed:: RustEmbed ;
18
18
use serde:: { Deserialize , Deserializer , Serialize , Serializer } ;
@@ -621,14 +621,16 @@ pub struct Params {
621
621
}
622
622
623
623
#[ derive( Default , Serialize , Deserialize , Debug , PartialEq , Eq ) ]
624
- #[ revisioned( revision = 1 ) ]
624
+ #[ revisioned( revision = 2 ) ]
625
625
pub struct Preferences {
626
626
#[ revision( start = 1 ) ]
627
627
#[ serde( skip_serializing, skip_deserializing) ]
628
628
pub available_themes : Vec < String > ,
629
- #[ revision( start = 1 ) ]
629
+ #[ revision( start = 1 , end = 2 , convert_fn="convert_theme" ) ]
630
+ pub theme : String ,
631
+ #[ revision( start = 2 ) ]
630
632
pub theme_light : String ,
631
- #[ revision( start = 1 ) ]
633
+ #[ revision( start = 2 ) ]
632
634
pub theme_dark : String ,
633
635
#[ revision( start = 1 ) ]
634
636
pub front_page : String ,
@@ -746,6 +748,11 @@ impl Preferences {
746
748
pub fn to_bincode_str ( & self ) -> Result < String , String > {
747
749
Ok ( base2048:: encode ( & self . to_compressed_bincode ( ) ?) )
748
750
}
751
+ fn convert_theme ( & mut self , _revision : u16 , value : String ) -> Result < ( ) , Error > {
752
+ self . theme_light = value. clone ( ) ;
753
+ self . theme_dark = value. clone ( ) ;
754
+ Ok ( ( ) )
755
+ }
749
756
}
750
757
751
758
pub fn deflate_compress ( i : Vec < u8 > ) -> Result < Vec < u8 > , String > {
0 commit comments