struct Flags [src]

Fields

src_line: u30
src_column: u29
id: Id

Members

Source

pub const Flags = packed struct(u64) { src_line: u30, src_column: u29, id: Id, pub const Id = enum(u5) { unnamed_test, @"test", decltest, @"comptime", @"usingnamespace", pub_usingnamespace, const_simple, const_typed, @"const", pub_const_simple, pub_const_typed, pub_const, extern_const_simple, extern_const, pub_extern_const_simple, pub_extern_const, export_const, pub_export_const, var_simple, @"var", var_threadlocal, pub_var_simple, pub_var, pub_var_threadlocal, extern_var, extern_var_threadlocal, pub_extern_var, pub_extern_var_threadlocal, export_var, export_var_threadlocal, pub_export_var, pub_export_var_threadlocal, pub fn hasName(id: Id) bool { return switch (id) { .unnamed_test, .@"comptime", .@"usingnamespace", .pub_usingnamespace, => false, else => true, }; } pub fn hasLibName(id: Id) bool { return switch (id) { .extern_const, .pub_extern_const, .extern_var, .extern_var_threadlocal, .pub_extern_var, .pub_extern_var_threadlocal, => true, else => false, }; } pub fn hasTypeBody(id: Id) bool { return switch (id) { .unnamed_test, .@"test", .decltest, .@"comptime", .@"usingnamespace", .pub_usingnamespace, => false, // these constructs are untyped .const_simple, .pub_const_simple, .var_simple, .pub_var_simple, => false, // these reprs omit type bodies else => true, }; } pub fn hasValueBody(id: Id) bool { return switch (id) { .extern_const_simple, .extern_const, .pub_extern_const_simple, .pub_extern_const, .extern_var, .extern_var_threadlocal, .pub_extern_var, .pub_extern_var_threadlocal, => false, // externs do not have values else => true, }; } pub fn hasSpecialBodies(id: Id) bool { return switch (id) { .unnamed_test, .@"test", .decltest, .@"comptime", .@"usingnamespace", .pub_usingnamespace, => false, // these constructs are untyped .const_simple, .const_typed, .pub_const_simple, .pub_const_typed, .extern_const_simple, .pub_extern_const_simple, .var_simple, .pub_var_simple, => false, // these reprs omit special bodies else => true, }; } pub fn linkage(id: Id) Declaration.Unwrapped.Linkage { return switch (id) { .extern_const_simple, .extern_const, .pub_extern_const_simple, .pub_extern_const, .extern_var, .extern_var_threadlocal, .pub_extern_var, .pub_extern_var_threadlocal, => .@"extern", .export_const, .pub_export_const, .export_var, .export_var_threadlocal, .pub_export_var, .pub_export_var_threadlocal, => .@"export", else => .normal, }; } pub fn kind(id: Id) Declaration.Unwrapped.Kind { return switch (id) { .unnamed_test => .unnamed_test, .@"test" => .@"test", .decltest => .decltest, .@"comptime" => .@"comptime", .@"usingnamespace", .pub_usingnamespace => .@"usingnamespace", .const_simple, .const_typed, .@"const", .pub_const_simple, .pub_const_typed, .pub_const, .extern_const_simple, .extern_const, .pub_extern_const_simple, .pub_extern_const, .export_const, .pub_export_const, => .@"const", .var_simple, .@"var", .var_threadlocal, .pub_var_simple, .pub_var, .pub_var_threadlocal, .extern_var, .extern_var_threadlocal, .pub_extern_var, .pub_extern_var_threadlocal, .export_var, .export_var_threadlocal, .pub_export_var, .pub_export_var_threadlocal, => .@"var", }; } pub fn isPub(id: Id) bool { return switch (id) { .pub_usingnamespace, .pub_const_simple, .pub_const_typed, .pub_const, .pub_extern_const_simple, .pub_extern_const, .pub_export_const, .pub_var_simple, .pub_var, .pub_var_threadlocal, .pub_extern_var, .pub_extern_var_threadlocal, .pub_export_var, .pub_export_var_threadlocal, => true, else => false, }; } pub fn isThreadlocal(id: Id) bool { return switch (id) { .var_threadlocal, .pub_var_threadlocal, .extern_var_threadlocal, .pub_extern_var_threadlocal, .export_var_threadlocal, .pub_export_var_threadlocal, => true, else => false, }; } }; }