Enum rbson::UuidRepresentation
source · [−]#[non_exhaustive]
pub enum UuidRepresentation {
Standard,
CSharpLegacy,
JavaLegacy,
PythonLegacy,
}
Expand description
Enum of the possible representations to use when converting between Uuid
and Binary
.
This enum is necessary because the different drivers used to have different ways of encoding
UUIDs, with the BSON subtype: 0x03 (UUID old).
If a UUID has been serialized with a particular representation, it MUST
be deserialized with the same representation.
Example:
use bson::{Binary, uuid::{Uuid, UuidRepresentation}};
let uuid = Uuid::parse_str("00112233445566778899AABBCCDDEEFF")?;
let bin = Binary::from_uuid_with_representation(uuid, UuidRepresentation::PythonLegacy);
// This conversion fails, since the binary holds a PythonLegacy UUID, so we're required to specify
// that.
assert!(bin.to_uuid().is_err());
// This conversion succeeds, since we specified the correct representation.
let new_uuid = bin.to_uuid_with_representation(UuidRepresentation::PythonLegacy)?;
assert_eq!(new_uuid, uuid);
Variants (Non-exhaustive)
This enum is marked as non-exhaustive
Standard
The canonical representation of UUIDs in BSON (binary with subtype 0x04)
CSharpLegacy
The legacy representation of UUIDs in BSON used by the C# driver (binary subtype 0x03)
JavaLegacy
The legacy representation of UUIDs in BSON used by the Java driver (binary subtype 0x03)
PythonLegacy
The legacy representation of UUIDs in BSON used by the Python driver, which is the same format as STANDARD, but has binary subtype 0x03
Trait Implementations
sourceimpl Clone for UuidRepresentation
impl Clone for UuidRepresentation
sourcefn clone(&self) -> UuidRepresentation
fn clone(&self) -> UuidRepresentation
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for UuidRepresentation
impl Debug for UuidRepresentation
impl Copy for UuidRepresentation
impl StructuralPartialEq for UuidRepresentation
Auto Trait Implementations
impl RefUnwindSafe for UuidRepresentation
impl Send for UuidRepresentation
impl Sync for UuidRepresentation
impl Unpin for UuidRepresentation
impl UnwindSafe for UuidRepresentation
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more