Revision control
Copy as Markdown
Other Tools
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();
}