From 5c1043b4e5f853f797947107cea2c5154654f544 Mon Sep 17 00:00:00 2001 From: William Casarin Date: Sun, 23 Jul 2023 11:54:07 -0700 Subject: [PATCH] ndb: add cchar constructors to AsciiCharacter This will be used for the cchar iterator --- nostrdb/AsciiCharacter.swift | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/nostrdb/AsciiCharacter.swift b/nostrdb/AsciiCharacter.swift index 9dca6efb..90011a79 100644 --- a/nostrdb/AsciiCharacter.swift +++ b/nostrdb/AsciiCharacter.swift @@ -7,13 +7,22 @@ import Foundation -struct AsciiCharacter: ExpressibleByStringLiteral { +struct AsciiCharacter: ExpressibleByStringLiteral, Equatable, Hashable { private let value: UInt8 var cchar: CChar { return CChar(bitPattern: value) } + var string: String { + return String(UnicodeScalar(UInt8(bitPattern: cchar))) + } + + init?(_ cchar: CChar) { + guard cchar < 127 else { return nil } + self.value = UInt8(cchar) + } + init?(_ character: Character) { guard let asciiValue = character.asciiValue, asciiValue < 128 else { return nil