Skip to content

Unique #6

@Tamschi

Description

@Tamschi

Is your feature request related to a problem? Please describe.

It's fairly likely that situation will appear where a guaranteed-unique but still reference-counted smart pointer type would be helpful.

For example, this type could allow mutable access to its managed instance at no overhead, and then could be converted into an Arc or Rc again with no overhead.
It would also be useful as common hub to convert between smart pointer types, since any smart pointer with reference count 1 and matching encapsulation and RefCounter in this crate should be directly compatible.

Describe the solution you'd like

The new Unique<T> should behave exactly like Arc<T>, with the caveat that it can't be cloned without converting it to the latter first. If Rc<T> is already implemented, it should also be convertible to and from that.

(The latter conversion should probably use TryFrom.)

There should also be infallible Box<T> conversions to and from Unique<T> that do adjust the reference count.

Describe alternatives you've considered

None.

Additional context

None.

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain: RustInvolves Rust code.good first issueGood for newcomerspriority: somedayIf you need this, please let me know!state: approvedApproved to proceed.type: featureBrand new functionality, features, pages, workflows, endpoints, etc.work: clearA known solution is (to be) implemented.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions