@@ -2,14 +2,16 @@ use std::sync::Arc;
22use std:: sync:: atomic:: { AtomicU32 , Ordering } ;
33
44use bitflags:: bitflags;
5+ #[ cfg( feature = "serde" ) ]
56use serde:: { Deserialize , Serialize } ;
67
78use crate :: grid:: { self , GridCell } ;
89use crate :: index:: Column ;
910use crate :: vte:: ansi:: { Color , Hyperlink as VteHyperlink , NamedColor } ;
1011
1112bitflags ! {
12- #[ derive( Debug , Clone , Copy , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
13+ #[ derive( Debug , Clone , Copy , PartialEq , Eq , Hash ) ]
14+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
1315 pub struct Flags : u16 {
1416 const INVERSE = 0b0000_0000_0000_0001 ;
1517 const BOLD = 0b0000_0000_0000_0010 ;
@@ -37,7 +39,8 @@ bitflags! {
3739/// Counter for hyperlinks without explicit ID.
3840static HYPERLINK_ID_SUFFIX : AtomicU32 = AtomicU32 :: new ( 0 ) ;
3941
40- #[ derive( Debug , Clone , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
42+ #[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
43+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
4144pub struct Hyperlink {
4245 inner : Arc < HyperlinkInner > ,
4346}
@@ -69,7 +72,8 @@ impl From<Hyperlink> for VteHyperlink {
6972 }
7073}
7174
72- #[ derive( Debug , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
75+ #[ derive( Debug , PartialEq , Eq , Hash ) ]
76+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
7377struct HyperlinkInner {
7478 /// Identifier for the given hyperlink.
7579 id : String ,
@@ -116,15 +120,17 @@ impl ResetDiscriminant<Color> for Cell {
116120/// This storage is reserved for cell attributes which are rarely set. This allows reducing the
117121/// allocation required ahead of time for every cell, with some additional overhead when the extra
118122/// storage is actually required.
119- #[ derive( Default , Debug , Clone , Eq , PartialEq , Serialize , Deserialize ) ]
123+ #[ derive( Default , Debug , Clone , Eq , PartialEq ) ]
124+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
120125pub struct CellExtra {
121126 zerowidth : Vec < char > ,
122127 underline_color : Option < Color > ,
123128 hyperlink : Option < Hyperlink > ,
124129}
125130
126131/// Content and attributes of a single cell in the terminal grid.
127- #[ derive( Clone , Debug , Eq , PartialEq , Serialize , Deserialize ) ]
132+ #[ derive( Clone , Debug , Eq , PartialEq ) ]
133+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
128134pub struct Cell {
129135 pub c : char ,
130136 pub fg : Color ,
0 commit comments