Hello, can't find a similar example to understand/fix
conflicting implementation for Person<_>
I've read you can't implement same behaviour twice, but how to define it better?
Rust allows a type to implement multiple traits, so there can be a T that implements both Plant and Animal. You can't forbid this.
Rust doesn't have specialization, and only allows one implementation of a trait for any type. In your case there could be two different Person.take_care possible implementations, and this is not allowed.
You will need PlantOwner and AnimalOwner traits to disambiguate them. Alternatively, do not create the Owner trait at all, and use non-trait implementation:
Rust doesn't have classes, and the example above is why. You can have many different impl blocks for the same type, and each impl can have different requirements and be available only sometimes.