jaemk / cached

Rust cache structures and easy function memoization
MIT License
1.57k stars 95 forks source link

Borrowed keys and values for `IOCached::set_cache` #195

Open 9999years opened 7 months ago

9999years commented 7 months ago

Caching through an IO interface invariably requires serializing and deserializing the cached keys and values to bytes. This inherently requires duplicating the data, so it doesn't need owned access to the keys or values.

The interface to IOCached would require much less (unnecessary) cloning if the key and value parameters to set_cache were borrowed instead of owned.

9999years commented 7 months ago

I have a draft implementation of this in #196. The interfaces themselves work fine but the macros are a bit more challenging. I think it'll need some massaging to make stuff like &str parameters work.