Implement `Serialize, Debug, Clone` for all container types
Dependencies
- [2]
HHJDRLLNCreate `fluent_embed_runtime` crate - [3]
BFL2Y7GNAdd relative timestamps using `jiff` and `icu_relativetime` - [4]
7M4UI3TWUpdate dependencies to latest versions - [5]
AE3AZFVKAdd `Styled<L: Localize>` struct to support localizing colors - [6]
S26YOXQIUpdate `Cargo.toml` in workspace and packages - [7]
RUCC2HKZRename from `fluent_embed` to `l10n_embed` - [8]
2HHBS7VWAdd rudimentary support for localizing lists - [9]
LYOV6ZIRAdd `layout` module for localizing with separators and vertical/horizontal padding - [10]
RA3H7PWCRefactor `Localize` for performance - [11]
DJH52CL3Change lists to be based on type (and, or, unit) rather than length (wide, short, narrow) - [*]
VZYZRAO4Move `output-macros` crate into workspace - [*]
UKFEFT6LCreate basic `Output` proc-macro
Change contents
- edit in l10n_embed/src/style.rs at line 1
use crate::macros::impl_serialize; - edit in l10n_embed/src/style.rs at line 16
#[derive(Debug, Clone)] - edit in l10n_embed/src/style.rs at line 21
impl_serialize!(Styled, message); - file addition: macros.rs[2.49]
macro_rules! impl_serialize {// Handle no extra const generics($container:ident, $field_name:ident) => {impl_serialize!($container, $field_name,);};($container:ident, $field_name:ident, $($const_name:ident: $const_type:ty),*) => {impl<M: crate::Localize + serde::Serialize, $(const $const_name: $const_type),*> serde::Serialize for $container<M, $($const_name),*> {fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>whereS: serde::Serializer,{self.$field_name.serialize(serializer)}}// impl<M: crate::Localize + std::fmt::Debug, $(const $const_name: $const_type),*> std::fmt::Debug for $container<M, $($const_name),*> {// fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {// self.$field_name.fmt(f)// }// }};}// Re-export the macro so other modules can use itpub(crate) use impl_serialize; - edit in l10n_embed/src/list.rs at line 3
use crate::macros::impl_serialize; - edit in l10n_embed/src/list.rs at line 20
#[derive(Debug, Clone)] - edit in l10n_embed/src/list.rs at line 58[11.1227]
impl_serialize!(AndList, messages);impl_serialize!(OrList, messages);impl_serialize!(UnitList, messages); - edit in l10n_embed/src/lib.rs at line 8
mod macros; - edit in l10n_embed/src/layout.rs at line 6
use crate::macros::impl_serialize; - edit in l10n_embed/src/layout.rs at line 9
#[derive(Debug, Clone)] - edit in l10n_embed/src/layout.rs at line 13
impl_serialize!(Lines, messages); - edit in l10n_embed/src/layout.rs at line 43
#[derive(Debug, Clone)] - edit in l10n_embed/src/layout.rs at line 48
impl_serialize!(Padded, message, VERTICAL_PADDING: usize, HORIZONTAL_PADDING: usize); - edit in l10n_embed/Cargo.toml at line 27
serde.workspace = true - edit in Cargo.toml at line 50
serde = "1.0" - edit in Cargo.lock at line 744
"serde",