Skip to content

Instantly share code, notes, and snippets.

@Zomatree
Created February 1, 2026 02:08
Show Gist options
  • Select an option

  • Save Zomatree/d197e777810e3d98ebda8696073e59cf to your computer and use it in GitHub Desktop.

Select an option

Save Zomatree/d197e777810e3d98ebda8696073e59cf to your computer and use it in GitHub Desktop.
partials
macro_rules! generate_field_diff {
(optional, $self:ident, $before:ident, $partial:ident, $field:ident) => {
if $partial.$field.is_some() {
$before.$field = $self.$field.clone();
};
};
($self:ident, $before:ident, $partial:ident, $field:ident) => {
if $partial.$field.is_some() {
$before.$field = Some($self.$field.clone());
};
};
}
macro_rules! generate_diff {
(
$self:ident,
$before:ident,
$partial:ident,
(
$(
$(
$(@$optional:tt)? (optional)
)?
$field: ident
),+
$(,)?
)
) => {
$(
generate_field_diff!($( $($optional)? optional,)? $self, $before, $partial, $field);
)*
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment