diff --git a/src/spec.rs b/src/spec.rs index 1d2d6853..04ec7708 100644 --- a/src/spec.rs +++ b/src/spec.rs @@ -54,6 +54,7 @@ const BINARY_SUBTYPE_UUID: u8 = 0x04; const BINARY_SUBTYPE_MD5: u8 = 0x05; const BINARY_SUBTYPE_ENCRYPTED: u8 = 0x06; const BINARY_SUBTYPE_COLUMN: u8 = 0x07; +const BINARY_SUBTYPE_SENSITIVE: u8 = 0x08; const BINARY_SUBTYPE_USER_DEFINED: u8 = 0x80; /// All available BSON element types. @@ -153,6 +154,7 @@ pub enum BinarySubtype { Md5, Encrypted, Column, + Sensitive, UserDefined(u8), Reserved(u8), } @@ -169,6 +171,7 @@ impl From for u8 { BinarySubtype::Md5 => BINARY_SUBTYPE_MD5, BinarySubtype::Encrypted => BINARY_SUBTYPE_ENCRYPTED, BinarySubtype::Column => BINARY_SUBTYPE_COLUMN, + BinarySubtype::Sensitive => BINARY_SUBTYPE_SENSITIVE, BinarySubtype::UserDefined(x) => x, BinarySubtype::Reserved(x) => x, } @@ -187,6 +190,7 @@ impl From for BinarySubtype { BINARY_SUBTYPE_MD5 => BinarySubtype::Md5, BINARY_SUBTYPE_ENCRYPTED => BinarySubtype::Encrypted, BINARY_SUBTYPE_COLUMN => BinarySubtype::Column, + BINARY_SUBTYPE_SENSITIVE => BinarySubtype::Sensitive, _ if t < BINARY_SUBTYPE_USER_DEFINED => BinarySubtype::Reserved(t), _ => BinarySubtype::UserDefined(t), } diff --git a/src/tests/binary_subtype.rs b/src/tests/binary_subtype.rs index cd96cc95..71f2d714 100644 --- a/src/tests/binary_subtype.rs +++ b/src/tests/binary_subtype.rs @@ -7,6 +7,7 @@ fn from_u8() { assert_eq!(BinarySubtype::from(0x00), BinarySubtype::Generic); assert_eq!(BinarySubtype::from(0x06), BinarySubtype::Encrypted); assert_eq!(BinarySubtype::from(0x07), BinarySubtype::Column); + assert_eq!(BinarySubtype::from(0x08), BinarySubtype::Sensitive); assert_eq!(BinarySubtype::from(0x7F), BinarySubtype::Reserved(0x7F)); assert_eq!(BinarySubtype::from(0x80), BinarySubtype::UserDefined(0x80)); assert_eq!(BinarySubtype::from(0xFF), BinarySubtype::UserDefined(0xFF)); diff --git a/src/tests/spec/json/bson-corpus/binary.json b/src/tests/spec/json/bson-corpus/binary.json index beb2e07a..20aaef74 100644 --- a/src/tests/spec/json/bson-corpus/binary.json +++ b/src/tests/spec/json/bson-corpus/binary.json @@ -55,6 +55,11 @@ "canonical_bson": "1D000000057800100000000773FFD26444B34C6990E8E7D1DFC035D400", "canonical_extjson": "{\"x\" : { \"$binary\" : {\"base64\" : \"c//SZESzTGmQ6OfR38A11A==\", \"subType\" : \"07\"}}}" }, + { + "description": "subtype 0x08", + "canonical_bson": "1D000000057800100000000873FFD26444B34C6990E8E7D1DFC035D400", + "canonical_extjson": "{\"x\" : { \"$binary\" : {\"base64\" : \"c//SZESzTGmQ6OfR38A11A==\", \"subType\" : \"08\"}}}" + }, { "description": "subtype 0x80", "canonical_bson": "0F0000000578000200000080FFFF00",