From c85431ecaa29505edf0aba6a6df5861ec1054841 Mon Sep 17 00:00:00 2001 From: Daniel Duan Date: Thu, 5 Feb 2026 23:43:25 -0800 Subject: [PATCH] Use UInt8 storage for hot parser enums Switch Token.Kind and InternalTOMLArray.Kind to UInt8-backed enums. The parser compares these enums in tight loops, and smaller enum storage can improve code generation and reduce data movement without changing semantics. --- Sources/TOMLDecoder/Parsing/TOMLDocument.swift | 2 +- Sources/TOMLDecoder/Parsing/Token.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/TOMLDecoder/Parsing/TOMLDocument.swift b/Sources/TOMLDecoder/Parsing/TOMLDocument.swift index d5a250ff..ce77a20b 100644 --- a/Sources/TOMLDecoder/Parsing/TOMLDocument.swift +++ b/Sources/TOMLDecoder/Parsing/TOMLDocument.swift @@ -90,7 +90,7 @@ struct InternalTOMLArray: Equatable, Sendable { } } - enum Kind { + enum Kind: UInt8 { case value case array case table diff --git a/Sources/TOMLDecoder/Parsing/Token.swift b/Sources/TOMLDecoder/Parsing/Token.swift index 82775cd0..c2857648 100644 --- a/Sources/TOMLDecoder/Parsing/Token.swift +++ b/Sources/TOMLDecoder/Parsing/Token.swift @@ -1,5 +1,5 @@ struct Token: Equatable { - enum Kind { + enum Kind: UInt8 { case dot case comma case equal