aboutsummaryrefslogtreecommitdiff
path: root/azalea-chat/src/base_component.rs
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2025-09-26 06:16:33 +0800
committermat <git@matdoes.dev>2025-09-25 19:20:09 -0300
commit730297cf561d42fd9132eb201d1aec0d3d7c7e00 (patch)
treed26f63b8a4553cc1b07c41a5b1a06aba773e60c4 /azalea-chat/src/base_component.rs
parent8927a0fe65f5f89b4459956f19989f27f1e0981c (diff)
downloadazalea-drasl-730297cf561d42fd9132eb201d1aec0d3d7c7e00.tar.xz
fix compile error with new serde version, and update deps
Diffstat (limited to 'azalea-chat/src/base_component.rs')
-rw-r--r--azalea-chat/src/base_component.rs30
1 files changed, 25 insertions, 5 deletions
diff --git a/azalea-chat/src/base_component.rs b/azalea-chat/src/base_component.rs
index 27666c17..be7e9656 100644
--- a/azalea-chat/src/base_component.rs
+++ b/azalea-chat/src/base_component.rs
@@ -1,18 +1,38 @@
-use serde::Serialize;
+use serde::{Serialize, ser::SerializeMap};
use crate::{FormattedText, style::Style};
-#[derive(Clone, Debug, PartialEq, Serialize)]
+#[derive(Clone, Debug, PartialEq)]
pub struct BaseComponent {
- // implements mutablecomponent
/// Components in the "extra" field.
- #[serde(skip_serializing_if = "Vec::is_empty")]
pub siblings: Vec<FormattedText>,
- #[serde(flatten)]
pub style: Box<Style>,
}
impl BaseComponent {
+ pub fn serialize_map<S>(&self, state: &mut S::SerializeMap) -> Result<(), S::Error>
+ where
+ S: serde::Serializer,
+ {
+ if !self.siblings.is_empty() {
+ state.serialize_entry("extra", &self.siblings)?;
+ }
+ self.style.serialize_map::<S>(state)?;
+ Ok(())
+ }
+}
+impl Serialize for BaseComponent {
+ fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
+ where
+ S: serde::Serializer,
+ {
+ let mut state = serializer.serialize_map(None)?;
+ self.serialize_map::<S>(&mut state)?;
+ state.end()
+ }
+}
+
+impl BaseComponent {
pub fn new() -> Self {
Self {
siblings: Vec::new(),