const size: usize>
{
pub data: [MemoryCell; size],
pub parser: P
}
И использую его примерно так
pub struct Computer {
pub registers: Registers,
pub general_memory: Memory<GeneralParser, 2048>,
pub mc_memory: Memory<McParser, 256>,
logs: Vec<LogEntry>
}
и потом объявил функцию
fn cells(&self, computer: &mut Computer) -> &mut Memory<McParser, *> {
return match self {
MemoryPage::MicroCommands => &mut computer.mc_memory,
MemoryPage::GeneralMemory => &mut computer.general_memory
};
}
Вот и если вы посмотрите на сигнатуру вы наверняка сразу все поймете, но тем не менее вопрос таков: как вернуть то структ у которого конст генерик может быть разный?
Сделать data поле дженериком. Хранить Memory<[MemoryCell; ...]>, а из методов возвращать Memory<[MemoryCell]>
Обсуждают сегодня