Function element [src]

Prototype

pub fn element( self: *Decoder, expected: ExpectedTag, ) (error{ EndOfStream, UnexpectedElement } || Element.DecodeError)!Element

Parameters

self: *Decoderexpected: ExpectedTag

Source

pub fn element( self: *Decoder, expected: ExpectedTag, ) (error{ EndOfStream, UnexpectedElement } || Element.DecodeError)!Element { if (self.index >= self.bytes.len) return error.EndOfStream; const res = try Element.decode(self.bytes, self.index); var e = expected; if (self.field_tag) |ft| { e.number = @enumFromInt(ft.number); e.class = ft.class; } if (!e.match(res.tag)) { return error.UnexpectedElement; } self.index = if (res.tag.constructed) res.slice.start else res.slice.end; return res; }