From 725719b96274f53b2d210b765fa51d9716d8818c Mon Sep 17 00:00:00 2001 From: Andrew Werner Date: Tue, 11 Jul 2023 11:37:47 -0400 Subject: [PATCH] aya: impl From for MapTypeError --- aya/src/bpf.rs | 8 ++------ aya/src/maps/mod.rs | 8 ++++++++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/aya/src/bpf.rs b/aya/src/bpf.rs index 0c9d1d51..07c05815 100644 --- a/aya/src/bpf.rs +++ b/aya/src/bpf.rs @@ -626,12 +626,8 @@ impl<'a> BpfLoader<'a> { } fn parse_map(data: (String, MapData)) -> Result<(String, Map), BpfError> { - let name = data.0; - let map = data.1; - let map_type = - bpf_map_type::try_from(map.obj.map_type()).map_err(|e| MapError::InvalidMapType { - map_type: e.map_type, - })?; + let (name, map) = data; + let map_type = bpf_map_type::try_from(map.obj.map_type()).map_err(MapError::from)?; let map = match map_type { BPF_MAP_TYPE_ARRAY => Ok(Map::Array(map)), BPF_MAP_TYPE_PERCPU_ARRAY => Ok(Map::PerCpuArray(map)), diff --git a/aya/src/maps/mod.rs b/aya/src/maps/mod.rs index 2332e1f5..862ccc1c 100644 --- a/aya/src/maps/mod.rs +++ b/aya/src/maps/mod.rs @@ -50,6 +50,7 @@ use std::{ use crate::util::KernelVersion; use libc::{getrlimit, rlimit, RLIMIT_MEMLOCK, RLIM_INFINITY}; use log::warn; +use obj::maps::InvalidMapTypeError; use thiserror::Error; use crate::{ @@ -185,6 +186,13 @@ pub enum MapError { }, } +impl From for MapError { + fn from(e: InvalidMapTypeError) -> Self { + let InvalidMapTypeError { map_type } = e; + MapError::InvalidMapType { map_type } + } +} + /// A map file descriptor. pub struct MapFd(RawFd);