Skip to content

Commit

Permalink
Implement serialize and deserialize for some UI types (bevyengine#10044)
Browse files Browse the repository at this point in the history
# Objective

- Add serde Deserialize and Serialize for structs that doesn't implement
it, even if they could benefit from it

## Solution

- Derive these traits for the structs Style, BackgroundColor,
BorderColor and Outline.

---
  • Loading branch information
pablo-lua committed Oct 10, 2023
1 parent a52ca17 commit ca873e7
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions crates/bevy_ui/src/ui_node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,8 @@ impl Default for Node {
/// - [A Complete Guide To CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/) by CSS Tricks. This is detailed guide with illustrations and comprehensive written explanation of the different CSS Grid properties and how they work.
/// - [CSS Grid Garden](https://cssgridgarden.com/). An interactive tutorial/game that teaches the essential parts of CSS Grid in a fun engaging way.

#[derive(Component, Clone, PartialEq, Debug, Reflect)]
#[reflect(Component, Default, PartialEq)]
#[derive(Component, Clone, PartialEq, Debug, Deserialize, Serialize, Reflect)]
#[reflect(Component, Default, PartialEq, Deserialize, Serialize)]
pub struct Style {
/// Which layout algorithm to use when laying out this node's contents:
/// - [`Display::Flex`]: Use the Flexbox layout algorithm
Expand Down Expand Up @@ -1420,8 +1420,8 @@ pub enum GridPlacementError {
///
/// This serves as the "fill" color.
/// When combined with [`UiImage`], tints the provided texture.
#[derive(Component, Copy, Clone, Debug, Reflect)]
#[reflect(Component, Default)]
#[derive(Component, Copy, Clone, Debug, Deserialize, Serialize, Reflect)]
#[reflect(Component, Default, Deserialize, Serialize)]
pub struct BackgroundColor(pub Color);

impl BackgroundColor {
Expand Down Expand Up @@ -1453,8 +1453,8 @@ pub struct UiTextureAtlasImage {
}

/// The border color of the UI node.
#[derive(Component, Copy, Clone, Debug, Reflect)]
#[reflect(Component, Default)]
#[derive(Component, Copy, Clone, Debug, Deserialize, Serialize, Reflect)]
#[reflect(Component, Default, Deserialize, Serialize)]
pub struct BorderColor(pub Color);

impl From<Color> for BorderColor {
Expand All @@ -1473,8 +1473,8 @@ impl Default for BorderColor {
}
}

#[derive(Component, Copy, Clone, Default, Debug, Reflect)]
#[reflect(Component, Default)]
#[derive(Component, Copy, Clone, Default, Debug, Deserialize, Serialize, Reflect)]
#[reflect(Component, Default, Deserialize, Serialize)]
/// The [`Outline`] component adds an outline outside the edge of a UI node.
/// Outlines do not take up space in the layout
///
Expand Down

0 comments on commit ca873e7

Please sign in to comment.