Okay, it seems that the way to read in a binary file is to use std.file.read() which reads in the file as a void[]. This immediately raises the question as to how to convert the void[] into something useful. It seems to me that casting void[] to a ubyte[] is then the appropriate thing to do because then you can properly index it and grab the appropriate bytes that need to be converting into useful values. However, that still raises the question of how to get anything useful out of the bytes. UTF-8 strings are easy because they're the same size as ubytes. Casting to char[] for the portion of the data that you want as a string seems to work just fine. But what about other types? Is it the correct thing to cast to T[] where T is whatever type the data represents and then index into it to get the values that you want of that type and then cast the next section of the data to U[] where U is the type for the next section of the data, etc.? Or is there a better way to handle this?
- Jonathan M Davis