`rustfmt` is unable to format macro calls so instead we wrap the impl blocks in modules to enable formatting in the next commit. We need to change the visibility of the methods but that's OK since they're internal.