rust trait require other trait