Skip to content

Commit d1f581b

Browse files
committed
Swift Utils: add StringRef.startsWith
1 parent fd17b7e commit d1f581b

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

SwiftCompilerSources/Sources/Basic/Utils.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,16 @@ public struct StringRef : CustomStringConvertible, NoReflectionChildren {
9696
return buffer[index]
9797
}
9898

99+
public func startsWith(_ prefix: StaticString) -> Bool {
100+
return prefix.withUTF8Buffer { (prefixBuffer: UnsafeBufferPointer<UInt8>) in
101+
if count < prefixBuffer.count {
102+
return false
103+
}
104+
let buffer = UnsafeBufferPointer<UInt8>(start: _bridged.data, count: prefixBuffer.count)
105+
return buffer.elementsEqual(prefixBuffer, by: ==)
106+
}
107+
}
108+
99109
public static func ==(lhs: StringRef, rhs: StringRef) -> Bool {
100110
let lhsBuffer = UnsafeBufferPointer<UInt8>(start: lhs._bridged.data, count: lhs.count)
101111
let rhsBuffer = UnsafeBufferPointer<UInt8>(start: rhs._bridged.data, count: rhs.count)

0 commit comments

Comments
 (0)