aboutsummaryrefslogtreecommitdiff
path: root/niri-config/src/utils
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-09-20 12:57:38 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-10-02 09:33:08 +0300
commita2727ba2c9cfb22e4184235c6dfd8d8819328169 (patch)
treedbde396598e3ac3483d8535ea62c2994ef2bbf70 /niri-config/src/utils
parent8df6231cc164396e19a892f11beb8c02e2e88efb (diff)
downloadniri-a2727ba2c9cfb22e4184235c6dfd8d8819328169.tar.gz
niri-a2727ba2c9cfb22e4184235c6dfd8d8819328169.tar.bz2
niri-a2727ba2c9cfb22e4184235c6dfd8d8819328169.zip
config: Introduce MergeWith trait
Diffstat (limited to 'niri-config/src/utils')
-rw-r--r--niri-config/src/utils/merge_with.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/niri-config/src/utils/merge_with.rs b/niri-config/src/utils/merge_with.rs
new file mode 100644
index 00000000..857e2146
--- /dev/null
+++ b/niri-config/src/utils/merge_with.rs
@@ -0,0 +1,18 @@
+pub trait MergeWith<T> {
+ fn merge_with(&mut self, part: &T);
+
+ fn merged_with(mut self, part: &T) -> Self
+ where
+ Self: Sized,
+ {
+ self.merge_with(part);
+ self
+ }
+
+ fn from_part(part: &T) -> Self
+ where
+ Self: Default + Sized,
+ {
+ Self::default().merged_with(part)
+ }
+}