I was able to resolve this by changing the trait method to not take Self, instead defining a new struct to hold the relevant data, and passing that instead.
Self