I've added a csv: &DataFrame argument to operations() so we'll have access to the csv inside the method. I've also made sure operations() takes &self so it is a method callable on some boilerplate object as boilerplate.operations(&csv)
We use expect() to get the DataFrame out of the PolarsResult, making the program crash if loading failed for some reason (there are better ways to handle errors, but blowing up will be good enough for now)
In boilerplates.operations(&csv), I'm passing a reference to the csv variable into the operations() method (this ties in with point 1). I chose a reference here because often just looking at a data frame and doing analysis doesn't require you to consume it.