Hello! I'm very new to rust but I've been using the zama-concrete rust crate for a homomorphic encryption project.
I have a vector of ciphertexts (type FheUint16) that I want to find the sum of. vec.iter().sum() didn't work for this data type so I resorted to using a for loop. However I keep running into the error "temporary value dropped while borrowed".
Any temporary solutions I've tried don't give me the wanted behavior either. How do I properly keep updating the "sum" variable? I've attached some photos for reference. Thank you for your help!
Rust references are not for storing objects "by reference". Rust references are only a temporary permission to view an existing value already stored somewhere else.
It's not possible to make a reference to a newly-created temporary result. The value has to be stored somewhere first. (sum + ct) creates a new value, and you can't borrow this object when it's not stored anywhere. You need to store result of (sum + ct) to be able to make a reference (a temporary view) of the location where it's stored.
In your case you should just avoid trying to use references for sum. This is a new value that you're creating/modifying, not a read-only view of a value that already existed before.