Closed
Description
When deserializing Weak, there's currently no clean way to handle the case that there's no strong reference anymore. Serializing doesn't have the same issue. There seem to be two solutions to this, either provide an explicit constructor that returns a Weak without using a strong reference to create it, or implementing Default for it that does the same. I prefer the former, as Default might be a bit surprising.
This would be a simple, non-backwards-incompatible change. Possible constructor name bikeshedding: Weak::new_downgraded()
Unstable APIs
Weak::new