Function decode [src]

Prototype

pub fn decode(reader: anytype) !Tag

Source

pub fn decode(reader: anytype) !Tag { const tag1: FirstTag = @bitCast(try reader.readByte()); var number: u14 = tag1.number; if (tag1.number == 15) { const tag2: NextTag = @bitCast(try reader.readByte()); number = tag2.number; if (tag2.continues) { const tag3: NextTag = @bitCast(try reader.readByte()); number = (number << 7) + tag3.number; if (tag3.continues) return error.InvalidLength; } } return Tag{ .number = @enumFromInt(number), .constructed = tag1.constructed, .class = tag1.class, }; }