My preference would be struct declaration first, it makes much more sense when reading the code.
And between functions?
I wouldn't. I'm old school I guess, I prefer everything up front.
Structs all to front gives you an idea of what you're working with. What about pub vs private structs /functions?
I do this. Structs above impls and functions. New structs that come unto scope below existing functions but above functions that use them. There's while folder and module structure you can consider too for organization.