У меня есть ржавчина реализации, как показано ниже, и в реализации по умолчанию для перечисления мне нужно вернуть последний элемент, и мне нужно достичь его без его жесткого кодирования.
#[cfg_attr(feature = "std", derive(Debug))]
#[derive(Clone, PartialEq, Eq)]
pub enum Region<CountryId> {
None,
Category(CountryId),
}
#[cfg_attr(feature = "std", derive(Debug))]
#[derive(Clone, PartialEq, Eq)]
pub struct Litrature1<CountryId> {
pub Seek: Region<CountryId>,
pub Write: Region<CountryId>,
}
#[cfg_attr(feature = "std", derive(Debug))]
#[derive(Clone, PartialEq, Eq)]
pub struct Litrature2<CountryId> {
pub Seek: Region<CountryId>,
pub Write: Region<CountryId>,
pub Work: Region<CountryId>,
}
#[cfg_attr(feature = "std", derive(Debug))]
#[derive(Clone, PartialEq, Eq)]
pub enum Alphabets<CountryId> {
A1(Litrature1<CountryId>),
A2(Litrature1<CountryId>)
}
impl<CountryId> Default for Alphabets<CountryId> {
fn default() -> Self {
// How to return the last element of the enum as default?
Alphabets<CountryId>::A2
}
}
Playground
Я не знаю, как сделать эту работу