use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Tag(pub Vec<u8>);
#[allow(clippy::len_without_is_empty)]
impl Tag {
pub fn new<V: Into<Vec<u8>>>(vec: V) -> Tag {
Tag(vec.into())
}
pub fn into_vec(self) -> Vec<u8> {
self.into()
}
pub fn len(&self) -> usize {
self.0.len()
}
pub fn as_slice(&self) -> &[u8] {
self.as_ref()
}
}
impl AsRef<[u8]> for Tag {
fn as_ref(&self) -> &[u8] {
self.0.as_ref()
}
}
impl From<Vec<u8>> for Tag {
fn from(vec: Vec<u8>) -> Tag {
Tag::new(vec)
}
}
impl<'a> From<&'a [u8]> for Tag {
fn from(slice: &'a [u8]) -> Tag {
Tag::from(slice.to_vec())
}
}
impl Into<Vec<u8>> for Tag {
fn into(self) -> Vec<u8> {
self.0
}
}