Be careful in adding methods to traits. Any type that wants to implement that trait must also implement all of its methods. The Haskell community has long had problems with its numeric hierarchy not being split up enough.
My general rule of thumb is make traits small… only put the essential methods in them. Everything else should be a free function.
But that advice mostly comes from my years with Haskell. In Rust, traits are also used like classes. In that case maybe it is OK to add all the related function to the trait. I guess if you are going to use a trait like an “ability” (e.g. Iterator) then I would keep it small and lean. If you are using it like a class, design it like a class and include everything and the “kitchen sink” too:)