Skip to content

Commit b4983d5

Browse files
committed
add SPM support;implement missing functions
1 parent 081ba83 commit b4983d5

File tree

4 files changed

+155
-89
lines changed

4 files changed

+155
-89
lines changed

KaitaiStream/KaitaiSeekableStream.swift

+6-19
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class ByteArraySeekableStream : KaitaiSeekableStream {
6363
}
6464
}
6565

66-
class NSDataSeekableStream:KaitaiSeekableStream {
66+
class DataSeekableStream:KaitaiSeekableStream {
6767
fileprivate let data:Data
6868

6969
fileprivate(set) var position:Int = 0
@@ -81,16 +81,9 @@ class NSDataSeekableStream:KaitaiSeekableStream {
8181
}
8282

8383
func read() -> UInt8? {
84-
guard !isEOF else {
84+
guard let bytes = read(1) else {
8585
return nil
8686
}
87-
88-
var bytes = [UInt8](repeating: 0, count: 1)
89-
90-
(data as NSData).getBytes(&bytes, length: 1)
91-
92-
position += 1
93-
9487
return bytes[0]
9588
}
9689

@@ -102,18 +95,12 @@ class NSDataSeekableStream:KaitaiSeekableStream {
10295
guard position + length <= data.count else {
10396
return nil
10497
}
105-
98+
10699
var bytes = [UInt8](repeating: 0, count: length)
107-
108-
if position == 0 {
109-
(data as NSData).getBytes(&bytes, length: length)
110-
} else {
111-
let range = NSRange(location: position, length: length)
112-
(data as NSData).getBytes(&bytes, range: range)
113-
}
114-
100+
101+
data.copyBytes(to: &bytes, from: position..<position+length)
115102
position += length
116-
103+
117104
return bytes
118105
}
119106
}

0 commit comments

Comments
 (0)