Justin Tobler [off-list ref] writes:
So long as `struct odb_transaction` remains the first member of `struct
odb_transaction_files`, using `container_of()` is functionally the same
thing as casting. This is also how we do things for `odb_read_stream`
and `odb_loose_read_stream` so I don't think it is too big of a deal
either way.
It would be a good theme to clean them all up, together with
existing ones, in a separate topic. Code hygiene matters.