Skip to content

Add an option for checking for valid bits is in the getter rather than constructor #228

@CasperN

Description

@CasperN

Hi, I want to use bitflags for generated code that interacts with data in other languages, some of which are bitflags (google/flatbuffers#6098). I don't want to drop data so I'd like to use from_bits_unchecked. However, it is marked as unsafe. I'd like to submit a PR to add an option to get around this. I have two ideas:

  1. Move the valid-bits-check to the getter: There'll be only one constructor: from_bits and the bits() getter becomes bits() -> Result<...>, unsafe bits_unchecked(), and bits_truncated()

  2. Document why from_bits_unchecked is unsafe #200 documents that this crate uses unsafe to mean a usage issue rather than a memory issue, so maybe I could make an option to remove the unsafe altogether, and update the generated documentation appropriately?

What are your thoughts on these ideas? Does bitflags depend on the "bits are truncated to defined flags" invariant?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions