This post is inspiring. Thanks!
Joka Oyume

The struct may have 20 functions, but a single function that takes a database won’t need to call all 20 of them. Try to group Database functions into sections. Maybe read functions, write functions, admin functions, etc. Then individual functions that want a Database can take a subset closest to what they need instead.