stable-structures icon indicating copy to clipboard operation
stable-structures copied to clipboard

Implement Storable for Vec<T> where T: Storable

Open ielashi opened this issue 2 years ago • 2 comments

Currently we only implement Storable for Vec<u8>. Ideally, we would have a generic implementation that allows developers to put anything that implements Storable in a Vec.

We can't introduce this implementation at this point because:

  • Vec<u8> is special, in the sense that we don’t need to do any serializing/deserializing for the data - which makes its Storable implementation fast.
  • For all other types, we’d need to serialize/deserialize the elements in the Vec.

We'd need to wait for generic specializations in Rust to encode the logic above. The Vec<u8> special-case is quite important as it’s very often used.

ielashi avatar Nov 03 '23 07:11 ielashi

You can store vectors already. However, you would need to implement storable by hand for them. This issue is about implementing Storable for a Vec<T> where T implements Storable so you don't have to provide one for the vector yourself. As noted already we need to wait for a Rust feature (still open) to be able to implement this.

dsarlis avatar Nov 14 '24 08:11 dsarlis