From c1e93c0904706a7497046ba25d82fcfda6576734 Mon Sep 17 00:00:00 2001 From: Davide Della Giustina Date: Tue, 28 Feb 2023 14:34:26 +0000 Subject: [PATCH] PacketQueue::new() uses ::init() when in nightly --- embassy-stm32/src/eth/mod.rs | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/embassy-stm32/src/eth/mod.rs b/embassy-stm32/src/eth/mod.rs index 9b500bfd6..04c74e605 100644 --- a/embassy-stm32/src/eth/mod.rs +++ b/embassy-stm32/src/eth/mod.rs @@ -30,13 +30,24 @@ pub struct PacketQueue { impl PacketQueue { pub const fn new() -> Self { - const NEW_TDES: TDes = TDes::new(); - const NEW_RDES: RDes = RDes::new(); - Self { - tx_desc: [NEW_TDES; TX], - rx_desc: [NEW_RDES; RX], - tx_buf: [Packet([0; TX_BUFFER_SIZE]); TX], - rx_buf: [Packet([0; RX_BUFFER_SIZE]); RX], + #[cfg(feature = "nightly")] + { + let mut this = core::mem::MaybeUninit::uninit(); + unsafe { + Self::init(&mut this); + this.assume_init() + } + } + #[cfg(not(feature = "nightly"))] + { + const NEW_TDES: TDes = TDes::new(); + const NEW_RDES: RDes = RDes::new(); + Self { + tx_desc: [NEW_TDES; TX], + rx_desc: [NEW_RDES; RX], + tx_buf: [Packet([0; TX_BUFFER_SIZE]); TX], + rx_buf: [Packet([0; RX_BUFFER_SIZE]); RX], + } } }