clone data first, optimise if needed later avoid lifetimes as much as possible use elide / elision avoid using macro’s use cargo check instead of cargo build reduce the use of generics