Skip to content

Commit e708ee0

Browse files
make TestBit and clearBit generic (thanks @Tarmil)
1 parent ef46b0c commit e708ee0

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/ZMidi/Read.fs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,14 @@ module ReadFile =
2020
return! fatalError errorMessage
2121
}
2222

23-
let inline (|TestBit|_|) (bit: int) (i: uint16) =
24-
let mask = uint16(1 <<< bit)
23+
let inline (|TestBit|_|) (bit: int) (i: ^T) =
24+
let mask = LanguagePrimitives.GenericOne <<< bit
2525
if mask &&& i = mask then Some () else None
26-
let inline clearBit (bit: int) (i:uint16) =
27-
let mask = ~~~ (uint16(1 <<< bit))
26+
27+
let inline clearBit (bit: int) (i: ^T) =
28+
let mask = ~~~ (LanguagePrimitives.GenericOne <<< bit)
2829
i &&& mask
30+
2931
let assertString (s: string) =
3032
postCheck (readString s.Length) ((=) s) (Other (sprintf "assertString: expected '%s'" s))
3133

0 commit comments

Comments
 (0)