librasn / compiler

An ASN1 compiler producing Rust bindings for the rasn framework
Other
13 stars 7 forks source link

Inner types not generated #55

Closed XAMPPRocky closed 1 week ago

XAMPPRocky commented 1 month ago

This type from RRC was not fully generated:

TFCS-ReconfAdd-r12 ::=                  SEQUENCE{
    ctfcSize                            CHOICE{
        ctfc2Bit                            SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
            ctfc2                               INTEGER (0..3),
            powerOffsetInformation              PowerOffsetInformation          OPTIONAL,
            powerOffsetInformation-10msMode     PowerOffsetInformation-10msMode OPTIONAL
        },
        ctfc4Bit                            SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
            ctfc4                               INTEGER (0..15),
            powerOffsetInformation              PowerOffsetInformation          OPTIONAL,
            powerOffsetInformation-10msMode     PowerOffsetInformation-10msMode OPTIONAL
        },
        ctfc6Bit                            SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
            ctfc6                               INTEGER (0..63),
            powerOffsetInformation              PowerOffsetInformation          OPTIONAL,
            powerOffsetInformation-10msMode     PowerOffsetInformation-10msMode OPTIONAL
        },
        ctfc8Bit                            SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
            ctfc8                               INTEGER (0..255),
            powerOffsetInformation              PowerOffsetInformation          OPTIONAL,
            powerOffsetInformation-10msMode     PowerOffsetInformation-10msMode OPTIONAL
        },
        ctfc12Bit                           SEQUENCE (SIZE(1..maxTFC)) OF SEQUENCE {
            ctfc12                              INTEGER (0..4095),
            powerOffsetInformation              PowerOffsetInformation          OPTIONAL,
            powerOffsetInformation-10msMode     PowerOffsetInformation-10msMode OPTIONAL
        },
        ctfc16Bit                           SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
            ctfc16                              INTEGER(0..65535),
            powerOffsetInformation              PowerOffsetInformation          OPTIONAL,
            powerOffsetInformation-10msMode     PowerOffsetInformation-10msMode OPTIONAL
        },
        ctfc24Bit                           SEQUENCE (SIZE (1..maxTFC)) OF SEQUENCE {
            ctfc24                              INTEGER(0..16777215),
            powerOffsetInformation              PowerOffsetInformation          OPTIONAL,
            powerOffsetInformation-10msMode     PowerOffsetInformation-10msMode OPTIONAL
        }
    }
}

Generated Code (you can see the inner types are missing):

#[doc = " Inner type "]
#[derive(AsnType, Debug, Clone, Decode, Encode, PartialEq, Eq, Hash)]
#[rasn(choice, automatic_tags)]
pub enum TFCSReconfAddR12CtfcSize {
    #[rasn(size("1..=1024"))]
    ctfc2Bit(SequenceOf<TFCSReconfAddR12CtfcSizeCtfc2Bit>),
    #[rasn(size("1..=1024"))]
    ctfc4Bit(SequenceOf<TFCSReconfAddR12CtfcSizeCtfc4Bit>),
    #[rasn(size("1..=1024"))]
    ctfc6Bit(SequenceOf<TFCSReconfAddR12CtfcSizeCtfc6Bit>),
    #[rasn(size("1..=1024"))]
    ctfc8Bit(SequenceOf<TFCSReconfAddR12CtfcSizeCtfc8Bit>),
    #[rasn(size("1..=1024"))]
    ctfc12Bit(SequenceOf<TFCSReconfAddR12CtfcSizeCtfc12Bit>),
    #[rasn(size("1..=1024"))]
    ctfc16Bit(SequenceOf<TFCSReconfAddR12CtfcSizeCtfc16Bit>),
    #[rasn(size("1..=1024"))]
    ctfc24Bit(SequenceOf<TFCSReconfAddR12CtfcSizeCtfc24Bit>),
}
#[derive(AsnType, Debug, Clone, Decode, Encode, PartialEq, Eq, Hash)]
#[rasn(automatic_tags, identifier = "TFCS-ReconfAdd-r12")]
pub struct TFCSReconfAddR12 {
    #[rasn(identifier = "ctfcSize")]
    pub ctfc_size: TFCSReconfAddR12CtfcSize,
}
impl TFCSReconfAddR12 {
    pub fn new(ctfc_size: TFCSReconfAddR12CtfcSize) -> Self {
        Self { ctfc_size }
    }
}