moves up forward declaration

Required because of clang build failure.

The forward declaration is used to call the constructor before it's defined, and there was no problem on defining the struct directly at the top of the file, apart from cosmetic reasons.