func validateStructuredHeaderKey()

in Sources/RawStructuredFieldValues/FieldSerializer.swift [212:237]


    func validateStructuredHeaderKey() throws {
        let utf8View = self.utf8
        if let firstByte = utf8View.first {
            switch firstByte {
            case asciiLowercases, asciiAsterisk:
                // Good
                ()
            default:
                throw StructuredHeaderError.invalidKey
            }
        }

        let validKey = utf8View.dropFirst().allSatisfy {
            switch $0 {
            case asciiLowercases, asciiDigits, asciiUnderscore,
                 asciiDash, asciiPeriod, asciiAsterisk:
                return true
            default:
                return false
            }
        }

        guard validKey else {
            throw StructuredHeaderError.invalidKey
        }
    }