From 982895f27d2813f12ee59cbf2eee4f2db0c3b827 Mon Sep 17 00:00:00 2001 From: Andrey Zgarbul Date: Sun, 25 Dec 2022 22:08:06 +0300 Subject: [PATCH] box register/cluster --- svd-parser/src/expand.rs | 4 ++-- svd-rs/src/registercluster.rs | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/svd-parser/src/expand.rs b/svd-parser/src/expand.rs index 1f400c05..9c42b852 100644 --- a/svd-parser/src/expand.rs +++ b/svd-parser/src/expand.rs @@ -293,8 +293,8 @@ fn expand_register_cluster( index: &Index, ) -> Result<()> { match rc { - RegisterCluster::Cluster(c) => expand_cluster_array(regs, c, path, index)?, - RegisterCluster::Register(r) => expand_register_array(regs, r, path, index)?, + RegisterCluster::Cluster(c) => expand_cluster_array(regs, *c, path, index)?, + RegisterCluster::Register(r) => expand_register_array(regs, *r, path, index)?, } Ok(()) } diff --git a/svd-rs/src/registercluster.rs b/svd-rs/src/registercluster.rs index e9e09f9c..f42f6183 100644 --- a/svd-rs/src/registercluster.rs +++ b/svd-rs/src/registercluster.rs @@ -10,19 +10,31 @@ use super::{Cluster, Register}; #[allow(clippy::large_enum_variant)] pub enum RegisterCluster { /// Register - Register(Register), + Register(Box), /// Cluster - Cluster(Cluster), + Cluster(Box), } impl From for RegisterCluster { fn from(reg: Register) -> Self { - Self::Register(reg) + Self::Register(Box::new(reg)) } } impl From for RegisterCluster { fn from(cluser: Cluster) -> Self { + Self::Cluster(Box::new(cluser)) + } +} + +impl From> for RegisterCluster { + fn from(reg: Box) -> Self { + Self::Register(reg) + } +} + +impl From> for RegisterCluster { + fn from(cluser: Box) -> Self { Self::Cluster(cluser) } }