Skip to content

Optimize StaticStringMap Implementation #21498

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 13 additions & 26 deletions lib/compiler/resinator/rc.zig
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,8 @@ pub const ResourceType = enum {
fontdir_num,
manifest_num,

const map = std.StaticStringMapWithEql(
const map = std.StaticStringMapIgnoreCaseAscii(
ResourceType,
std.static_string_map.eqlAsciiIgnoreCase,
).initComptime(.{
.{ "ACCELERATORS", .accelerators },
.{ "BITMAP", .bitmap },
Expand Down Expand Up @@ -160,18 +159,16 @@ pub const OptionalStatements = enum {
menu,
style,

pub const map = std.StaticStringMapWithEql(
pub const map = std.StaticStringMapIgnoreCaseAscii(
OptionalStatements,
std.static_string_map.eqlAsciiIgnoreCase,
).initComptime(.{
.{ "CHARACTERISTICS", .characteristics },
.{ "LANGUAGE", .language },
.{ "VERSION", .version },
});

pub const dialog_map = std.StaticStringMapWithEql(
pub const dialog_map = std.StaticStringMapIgnoreCaseAscii(
OptionalStatements,
std.static_string_map.eqlAsciiIgnoreCase,
).initComptime(.{
.{ "CAPTION", .caption },
.{ "CLASS", .class },
Expand Down Expand Up @@ -206,9 +203,8 @@ pub const Control = enum {
state3,
userbutton,

pub const map = std.StaticStringMapWithEql(
pub const map = std.StaticStringMapIgnoreCaseAscii(
Control,
std.static_string_map.eqlAsciiIgnoreCase,
).initComptime(.{
.{ "AUTO3STATE", .auto3state },
.{ "AUTOCHECKBOX", .autocheckbox },
Expand Down Expand Up @@ -243,9 +239,8 @@ pub const Control = enum {
};

pub const ControlClass = struct {
pub const map = std.StaticStringMapWithEql(
pub const map = std.StaticStringMapIgnoreCaseAscii(
res.ControlClass,
std.static_string_map.eqlAsciiIgnoreCase,
).initComptime(.{
.{ "BUTTON", .button },
.{ "EDIT", .edit },
Expand Down Expand Up @@ -295,9 +290,8 @@ pub const MenuItem = enum {
menuitem,
popup,

pub const map = std.StaticStringMapWithEql(
pub const map = std.StaticStringMapIgnoreCaseAscii(
MenuItem,
std.static_string_map.eqlAsciiIgnoreCase,
).initComptime(.{
.{ "MENUITEM", .menuitem },
.{ "POPUP", .popup },
Expand All @@ -315,9 +309,8 @@ pub const MenuItem = enum {
menubarbreak,
menubreak,

pub const map = std.StaticStringMapWithEql(
pub const map = std.StaticStringMapIgnoreCaseAscii(
Option,
std.static_string_map.eqlAsciiIgnoreCase,
).initComptime(.{
.{ "CHECKED", .checked },
.{ "GRAYED", .grayed },
Expand All @@ -333,9 +326,8 @@ pub const ToolbarButton = enum {
button,
separator,

pub const map = std.StaticStringMapWithEql(
pub const map = std.StaticStringMapIgnoreCaseAscii(
ToolbarButton,
std.static_string_map.eqlAsciiIgnoreCase,
).initComptime(.{
.{ "BUTTON", .button },
.{ "SEPARATOR", .separator },
Expand All @@ -351,9 +343,8 @@ pub const VersionInfo = enum {
file_type,
file_subtype,

pub const map = std.StaticStringMapWithEql(
pub const map = std.StaticStringMapIgnoreCaseAscii(
VersionInfo,
std.static_string_map.eqlAsciiIgnoreCase,
).initComptime(.{
.{ "FILEVERSION", .file_version },
.{ "PRODUCTVERSION", .product_version },
Expand All @@ -369,9 +360,8 @@ pub const VersionBlock = enum {
block,
value,

pub const map = std.StaticStringMapWithEql(
pub const map = std.StaticStringMapIgnoreCaseAscii(
VersionBlock,
std.static_string_map.eqlAsciiIgnoreCase,
).initComptime(.{
.{ "BLOCK", .block },
.{ "VALUE", .value },
Expand All @@ -386,9 +376,8 @@ pub const TopLevelKeywords = enum {
characteristics,
stringtable,

pub const map = std.StaticStringMapWithEql(
pub const map = std.StaticStringMapIgnoreCaseAscii(
TopLevelKeywords,
std.static_string_map.eqlAsciiIgnoreCase,
).initComptime(.{
.{ "LANGUAGE", .language },
.{ "VERSION", .version },
Expand All @@ -408,9 +397,8 @@ pub const CommonResourceAttributes = enum {
shared,
nonshared,

pub const map = std.StaticStringMapWithEql(
pub const map = std.StaticStringMapIgnoreCaseAscii(
CommonResourceAttributes,
std.static_string_map.eqlAsciiIgnoreCase,
).initComptime(.{
.{ "PRELOAD", .preload },
.{ "LOADONCALL", .loadoncall },
Expand All @@ -432,9 +420,8 @@ pub const AcceleratorTypeAndOptions = enum {
shift,
control,

pub const map = std.StaticStringMapWithEql(
pub const map = std.StaticStringMapIgnoreCaseAscii(
AcceleratorTypeAndOptions,
std.static_string_map.eqlAsciiIgnoreCase,
).initComptime(.{
.{ "VIRTKEY", .virtkey },
.{ "ASCII", .ascii },
Expand Down
2 changes: 1 addition & 1 deletion lib/std/crypto/codecs/asn1/Oid.zig
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ pub fn StaticMap(comptime Enum: type) type {
oid_to_enum: std.StaticStringMap(Enum),
enum_to_oid: EnumToOid,

pub fn oidToEnum(self: @This(), encoded: []const u8) ?Enum {
pub fn oidToEnum(comptime self: @This(), encoded: []const u8) ?Enum {
return self.oid_to_enum.get(encoded);
}

Expand Down
Loading
Loading