Looking over the proposal again, I have to wonder: should we include more protocol requirements (with default implementations) in RandomNumberGenerator
?
For example, in addition to the “next() -> UInt64
” function, we could make the generic FixedWidthInteger
version a protocol requirement, so developers of custom generators can use optimized implementations.
Perhaps more importantly, we could include a requirement akin to arc4random_buf()
, which takes an inout MutableRawBufferPointer
and fills it with random bits. Depending on the algorithm, this could potentially bring a significant speedup.