80 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use serde::{Deserialize, Serialize};
 | |
| 
 | |
| #[derive(Serialize, Deserialize)]
 | |
| pub struct ImVec2 {
 | |
|     pub x: f32,
 | |
|     pub y: f32,
 | |
| }
 | |
| 
 | |
| #[derive(Serialize, Deserialize)]
 | |
| pub struct ImColorsSave {
 | |
|     pub text: f32,
 | |
| }
 | |
| 
 | |
| #[derive(Serialize, Deserialize)]
 | |
| pub struct ImGuiStyleSave {
 | |
|     pub alpha: f32,
 | |
|     pub window_padding: ImVec2,
 | |
|     pub window_min_size: ImVec2,
 | |
|     pub window_rounding: f32,
 | |
|     pub window_title_align: ImVec2,
 | |
|     pub child_window_rounding: f32,
 | |
|     pub frame_padding: ImVec2,
 | |
|     pub frame_rounding: f32,
 | |
|     pub item_spacing: ImVec2,
 | |
|     pub item_inner_spacing: ImVec2,
 | |
|     pub touch_extra_padding: ImVec2,
 | |
|     pub indent_spacing: f32,
 | |
|     pub columns_min_spacing: f32,
 | |
|     pub scrollbar_size: f32,
 | |
|     pub scrollbar_rounding: f32,
 | |
|     pub grab_min_size: f32,
 | |
|     pub grab_rounding: f32,
 | |
|     pub button_text_align: ImVec2,
 | |
|     pub display_window_padding: ImVec2,
 | |
|     pub display_safe_area_padding: ImVec2,
 | |
|     pub anti_aliased_lines: bool,
 | |
|     pub anti_aliased_shapes: bool,
 | |
|     pub curve_tessellation_tol: f32,
 | |
|     pub colors: ImColorsSave,
 | |
|     pub new_type: NewType,
 | |
| }
 | |
| 
 | |
| #[derive(Serialize, Deserialize)]
 | |
| pub struct NewType(i32);
 | |
| 
 | |
| const CONFIG: &str = "(
 | |
|     alpha: 1.0,
 | |
|     window_padding: (x: 8, y: 8),
 | |
|     window_min_size: (x: 32, y: 32),
 | |
|     window_rounding: 9.0,
 | |
|     window_title_align: (x: 0.0, y: 0.5),
 | |
|     child_window_rounding: 0.0,
 | |
|     frame_padding: (x: 4, y: 3),
 | |
|     frame_rounding: 0.0,
 | |
|     item_spacing: (x: 8, y: 4),
 | |
|     item_inner_spacing: (x: 4, y: 4),
 | |
|     touch_extra_padding: (x: 0, y: 0),
 | |
|     indent_spacing: 21.0,
 | |
|     columns_min_spacing: 6.0,
 | |
|     scrollbar_size: 16,
 | |
|     scrollbar_rounding: 9,
 | |
|     grab_min_size: 10,
 | |
|     grab_rounding: 0,
 | |
|     button_text_align: (x: 0.5, y: 0.5),
 | |
|     display_window_padding: (x: 22, y: 22),
 | |
|     display_safe_area_padding: (x: 4, y: 4),
 | |
|     anti_aliased_lines: true,
 | |
|     anti_aliased_shapes: true,
 | |
|     curve_tessellation_tol: 1.25,
 | |
|     colors: (text: 4),
 | |
|     new_type: NewType(     1  ),
 | |
| 
 | |
|     ignored_field: \"Totally ignored, not causing a panic. Hopefully.\",
 | |
| )";
 | |
| 
 | |
| #[test]
 | |
| fn deserialize_big_struct() {
 | |
|     ron::de::from_str::<ImGuiStyleSave>(CONFIG).unwrap();
 | |
| }
 | 
