fix clippy warnings

This commit is contained in:
stelzo 2023-07-25 21:16:22 +02:00
parent 8096edd6c7
commit 15665b4fc8
3 changed files with 33 additions and 76 deletions

View File

@ -133,7 +133,7 @@ fn convert_msg_code_to_type(code: u8) -> Result<FieldDatatype, ConversionError>
fn check_coord(
coord: Option<usize>,
fields: &Vec<PointFieldMsg>,
fields: &[PointFieldMsg],
xyz_field_type: &FieldDatatype,
) -> Result<PointFieldMsg, ConversionError> {
match coord {
@ -144,9 +144,7 @@ fn check_coord(
}
Ok(field.clone())
}
None => {
return Err(ConversionError::NotEnoughFields);
}
None => Err(ConversionError::NotEnoughFields),
}
}
@ -237,7 +235,7 @@ where
.get(idx)
.ok_or(ConversionError::MetaIndexLengthMismatch)?
.clone(),
value.datatype.clone(),
value.datatype,
));
point_step_size += datatype_size(&value.datatype);
}
@ -305,7 +303,7 @@ impl PointMeta {
}
fn new_from_buffer(
data: &Vec<u8>,
data: &[u8],
offset: usize,
datatype: &FieldDatatype,
) -> Result<Self, ConversionError> {
@ -319,7 +317,7 @@ impl PointMeta {
}
Ok(Self {
bytes: bytes_array,
datatype: datatype.clone(),
datatype: *datatype,
})
}
@ -371,7 +369,6 @@ where
/// let convert: ConvertXYZ = ConvertXYZ::try_from(msg).unwrap(); // parse message
/// ```
fn try_from(cloud: PointCloud2Msg) -> Result<Self, Self::Error> {
let cloud: PointCloud2Msg = cloud.into();
if cloud.fields.len() < DIM {
return Err(ConversionError::NotEnoughFields);
}
@ -411,7 +408,7 @@ where
let meta_offsets: Vec<usize> = meta_with_offsets.iter().map(|x| x.2).collect();
let meta: Vec<(String, FieldDatatype)> = meta_with_offsets
.iter()
.map(|x| (x.0.clone(), x.1.clone()))
.map(|x| (x.0.clone(), x.1))
.collect();
let x_field = check_coord(has_x, &cloud.fields, &xyz_field_type)?;
@ -530,13 +527,13 @@ where
if DIM > 1 {
fields.push(PointFieldMsg {
name: "x".to_string(),
offset: 0 * SIZE as u32,
offset: 0,
datatype,
count: 1,
});
fields.push(PointFieldMsg {
name: "y".to_string(),
offset: 1 * SIZE as u32,
offset: SIZE as u32,
datatype,
count: 1,
});
@ -584,7 +581,7 @@ where
for field in fields.iter() {
let field_type = convert_msg_code_to_type(field.datatype)?;
let field_size = datatype_size(&field_type);
step_size += field.count as u32 * field_size as u32;
step_size += field.count * field_size as u32;
}
cloud.fields = fields;
@ -624,6 +621,10 @@ where
pub fn len(&self) -> usize {
self.cloud_length
}
pub fn is_empty(&self) -> bool {
self.cloud_length == 0
}
}
impl<T, const SIZE: usize, const DIM: usize, const METADIM: usize, C>
@ -668,7 +669,7 @@ where
self.iteration += 1;
let conv = C::try_from((xyz, meta)); // try convert the point
match conv {
Err(_) => return Err(ConversionError::PointConversionError),
Err(_) => Err(ConversionError::PointConversionError),
Ok(tuple) => Ok(Some(tuple)),
}
}
@ -817,14 +818,14 @@ fn load_bytes<const S: usize>(start_idx: usize, data: &[u8]) -> Option<[u8; S]>
return None;
}
let mut buff: [u8; S] = [u8::zero(); S];
for byte in 0..S {
for (byte, buff_val) in buff.iter_mut().enumerate().take(S) {
let raw_byte = data.get(start_idx + byte);
match raw_byte {
None => {
return None;
}
Some(some_byte) => {
buff[byte] = some_byte.clone();
*buff_val = *some_byte;
}
}
}

View File

@ -1,38 +1,21 @@
#[cfg(not(feature = "rosrust_msg"))]
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Default)]
pub struct TimeMsg {
pub sec: u32,
pub nsec: u32,
}
#[cfg(not(feature = "rosrust_msg"))]
impl Default for TimeMsg {
fn default() -> Self {
Self { sec: 0, nsec: 0 }
}
}
#[cfg(feature = "rosrust_msg")]
pub use rosrust::Time as TimeMsg;
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Default)]
pub struct HeaderMsg {
pub seq: u32,
pub stamp: TimeMsg,
pub frame_id: String,
}
impl Default for HeaderMsg {
fn default() -> Self {
Self {
seq: 0,
stamp: TimeMsg::default(),
frame_id: String::new(),
}
}
}
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Default)]
pub struct PointFieldMsg {
pub name: String,
pub offset: u32,
@ -40,18 +23,7 @@ pub struct PointFieldMsg {
pub count: u32,
}
impl Default for PointFieldMsg {
fn default() -> Self {
Self {
name: String::new(),
offset: 0,
datatype: 0,
count: 0,
}
}
}
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Default)]
pub struct PointCloud2Msg {
pub header: HeaderMsg,
pub height: u32,
@ -64,22 +36,6 @@ pub struct PointCloud2Msg {
pub is_dense: bool,
}
impl Default for PointCloud2Msg {
fn default() -> Self {
Self {
header: HeaderMsg::default(),
height: 0,
width: 0,
fields: Vec::new(),
is_bigendian: false,
point_step: 0,
row_step: 0,
data: Vec::new(),
is_dense: false,
}
}
}
#[cfg(feature = "r2r_msg")]
impl From<r2r::sensor_msgs::msg::PointCloud2> for PointCloud2Msg {
fn from(msg: r2r::sensor_msgs::msg::PointCloud2) -> Self {

View File

@ -40,9 +40,9 @@ fn custom_xyz_f32() {
z: f32,
}
type MyConverter = Convert<f32, { size_of!(f32) }, DIM, METADIM, CustomPoint>;
impl Into<([f32; DIM], [PointMeta; METADIM])> for CustomPoint {
fn into(self) -> ([f32; DIM], [PointMeta; METADIM]) {
([self.x, self.y, self.z], [])
impl From<CustomPoint> for ([f32; DIM], [PointMeta; METADIM]) {
fn from(point: CustomPoint) -> Self {
([point.x, point.y, point.z], [])
}
}
impl TryFrom<([f32; DIM], [PointMeta; METADIM])> for CustomPoint {
@ -93,9 +93,9 @@ fn custom_xyzi_f32() {
i: u8,
}
type MyConverter = Convert<f32, { size_of!(f32) }, DIM, METADIM, CustomPoint>;
impl Into<([f32; DIM], [PointMeta; METADIM])> for CustomPoint {
fn into(self) -> ([f32; DIM], [PointMeta; METADIM]) {
([self.x, self.y, self.z], [PointMeta::new(self.i)])
impl From<CustomPoint> for ([f32; DIM], [PointMeta; METADIM]) {
fn from(point: CustomPoint) -> Self {
([point.x, point.y, point.z], [PointMeta::new(point.i)])
}
}
impl TryFrom<([f32; DIM], [PointMeta; METADIM])> for CustomPoint {
@ -158,15 +158,15 @@ fn custom_rgba_f32() {
a: u8,
}
type MyConverter = Convert<f32, { size_of!(f32) }, DIM, METADIM, CustomPoint>;
impl Into<([f32; DIM], [PointMeta; METADIM])> for CustomPoint {
fn into(self) -> ([f32; DIM], [PointMeta; METADIM]) {
impl From<CustomPoint> for ([f32; DIM], [PointMeta; METADIM]) {
fn from(point: CustomPoint) -> Self {
(
[self.x, self.y, self.z],
[point.x, point.y, point.z],
[
PointMeta::new(self.r),
PointMeta::new(self.g),
PointMeta::new(self.b),
PointMeta::new(self.a),
PointMeta::new(point.r),
PointMeta::new(point.g),
PointMeta::new(point.b),
PointMeta::new(point.a),
],
)
}