Function fromZig [src]

Prototype

pub fn fromZig(comptime T: type) Tag

Parameters

T: type

Source

pub fn fromZig(comptime T: type) Tag { switch (@typeInfo(T)) { .@"struct", .@"enum", .@"union" => { if (@hasDecl(T, "asn1_tag")) return T.asn1_tag; }, else => {}, } switch (@typeInfo(T)) { .@"struct", .@"union" => return universal(.sequence, true), .bool => return universal(.boolean, false), .int => return universal(.integer, false), .@"enum" => |e| { if (@hasDecl(T, "oids")) return Oid.asn1_tag; return universal(if (e.is_exhaustive) .enumerated else .integer, false); }, .optional => |o| return fromZig(o.child), .null => return universal(.null, false), else => @compileError("cannot map Zig type to asn1_tag " ++ @typeName(T)), } }