我正在写一个铁 rust 库,在那里我用了embedded-alloc.我希望我的库的用户能够根据他们的平台配置堆的大小,它是一个静态array.
我试过这样的方法,但不起作用:
#![no_std]
#![no_main]
extern crate alloc;
use cortex_m_rt::entry;
use embedded_alloc::LlffHeap as Heap;
#[global_allocator]
static HEAP: Heap = Heap::empty();
fn init<const N: usize>() {
use core::mem::MaybeUninit;
const HEAP_SIZE: usize = N;
static mut HEAP_MEM: [MaybeUninit<u8>; HEAP_SIZE] = [MaybeUninit::uninit(); HEAP_SIZE];
unsafe { HEAP.init(HEAP_MEM.as_ptr() as usize, HEAP_SIZE) }
}
// User code.
fn main() {
init::<1024>();
}
error[E0401]: can't use generic parameters from outer item
--> src/main.rs:2:31
|
1 | fn init<const N: usize>() {
| - const parameter from outer item
2 | const HEAP_SIZE: usize = N;
| ^ use of generic parameter from outer item
For more information about this error, try `rustc --explain E0401`.
error: could not compile `rust_const_generic` (bin "rust_const_generic") due to previous error
有没有办法允许我的机箱的用户配置内部静态数组的大小?