refactor(core): clean up version bytes
This commit is contained in:
@@ -78,11 +78,11 @@ impl VersionBytes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn as_version_bytes_ref(&self) -> VersionBytesRef<'_> {
|
pub fn as_version_bytes_ref(&self) -> VersionBytesRef<'_> {
|
||||||
VersionBytesRef::new(self.0, &self.1)
|
VersionBytesRef::new(self.version(), self.as_ref())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn buf(&self) -> VersionBytesBuf<'_> {
|
pub fn buf(&self) -> VersionBytesBuf<'_> {
|
||||||
VersionBytesBuf::new(self.0, &self.1)
|
VersionBytesBuf::new(self.version(), self.as_ref())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn deserialize(slice: &[u8]) -> Result<VersionBytes, DeserializeError> {
|
pub fn deserialize(slice: &[u8]) -> Result<VersionBytes, DeserializeError> {
|
||||||
@@ -102,7 +102,7 @@ impl From<VersionBytes> for Vec<u8> {
|
|||||||
|
|
||||||
impl From<VersionBytesRef<'_>> for VersionBytes {
|
impl From<VersionBytesRef<'_>> for VersionBytes {
|
||||||
fn from(v: VersionBytesRef<'_>) -> VersionBytes {
|
fn from(v: VersionBytesRef<'_>) -> VersionBytes {
|
||||||
VersionBytes::new(v.0, v.1.into())
|
VersionBytes::new(v.version(), v.into())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,10 +130,10 @@ impl<'a> VersionBytesRef<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn ensure_version(&self, version: Uuid) -> Result<(), VersionError> {
|
pub fn ensure_version(&self, version: Uuid) -> Result<(), VersionError> {
|
||||||
if self.0 != version {
|
if self.version() != version {
|
||||||
Err(VersionError {
|
Err(VersionError {
|
||||||
expected: vec![version],
|
expected: vec![version],
|
||||||
got: self.0,
|
got: self.version(),
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
Ok(())
|
Ok(())
|
||||||
@@ -142,10 +142,10 @@ impl<'a> VersionBytesRef<'a> {
|
|||||||
|
|
||||||
/// `versions` needs to be sorted!
|
/// `versions` needs to be sorted!
|
||||||
pub fn ensure_versions(&self, versions: &[Uuid]) -> Result<(), VersionError> {
|
pub fn ensure_versions(&self, versions: &[Uuid]) -> Result<(), VersionError> {
|
||||||
if versions.binary_search(&self.0).is_err() {
|
if versions.binary_search(&self.version()).is_err() {
|
||||||
Err(VersionError {
|
Err(VersionError {
|
||||||
expected: versions.to_owned(),
|
expected: versions.to_owned(),
|
||||||
got: self.0,
|
got: self.version(),
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
Ok(())
|
Ok(())
|
||||||
@@ -182,13 +182,13 @@ impl<'a> VersionBytesRef<'a> {
|
|||||||
.copied()
|
.copied()
|
||||||
.map(|v| Uuid::from_u128(v))
|
.map(|v| Uuid::from_u128(v))
|
||||||
.collect(),
|
.collect(),
|
||||||
got: self.0,
|
got: self.version(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn buf(&self) -> VersionBytesBuf<'_> {
|
pub fn buf(&self) -> VersionBytesBuf<'_> {
|
||||||
VersionBytesBuf::new(self.0, &self.1)
|
VersionBytesBuf::new(self.version(), self.as_ref())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn deserialize(slice: &'a [u8]) -> Result<VersionBytesRef<'a>, DeserializeError> {
|
pub fn deserialize(slice: &'a [u8]) -> Result<VersionBytesRef<'a>, DeserializeError> {
|
||||||
@@ -196,8 +196,8 @@ impl<'a> VersionBytesRef<'a> {
|
|||||||
return Err(DeserializeError::InvalidLength);
|
return Err(DeserializeError::InvalidLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut version = [0; 16];
|
let mut version = [0; VERSION_LEN];
|
||||||
version.copy_from_slice(&slice[0..16]);
|
version.copy_from_slice(&slice[0..VERSION_LEN]);
|
||||||
let version = Uuid::from_bytes(version);
|
let version = Uuid::from_bytes(version);
|
||||||
|
|
||||||
Ok(VersionBytesRef::new(version, &slice[VERSION_LEN..]))
|
Ok(VersionBytesRef::new(version, &slice[VERSION_LEN..]))
|
||||||
@@ -216,15 +216,21 @@ impl<'a> VersionBytesRef<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> AsRef<[u8]> for VersionBytesRef<'a> {
|
impl<'a> From<VersionBytesRef<'a>> for Vec<u8> {
|
||||||
fn as_ref(&self) -> &[u8] {
|
fn from(v: VersionBytesRef<'a>) -> Vec<u8> {
|
||||||
self.1.as_ref()
|
v.1.into()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> From<&'a VersionBytes> for VersionBytesRef<'a> {
|
impl<'a> From<&'a VersionBytes> for VersionBytesRef<'a> {
|
||||||
fn from(v: &'a VersionBytes) -> VersionBytesRef<'a> {
|
fn from(v: &'a VersionBytes) -> VersionBytesRef<'a> {
|
||||||
VersionBytesRef::new(v.0, &v.1)
|
VersionBytesRef::new(v.version(), v.as_ref())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> AsRef<[u8]> for VersionBytesRef<'a> {
|
||||||
|
fn as_ref(&self) -> &[u8] {
|
||||||
|
self.1.as_ref()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user