Sfoglia il codice sorgente

Fixups4

Remove From method and replace with internal
helper function.

Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
Andrew Stoycos 2 anni fa
parent
commit
4ddf260
1 ha cambiato i file con 29 aggiunte e 36 eliminazioni
  1. 29 36
      aya/src/maps/mod.rs

+ 29 - 36
aya/src/maps/mod.rs

@@ -268,6 +268,27 @@ pub enum Map {
     Queue(MapData),
 }
 
+impl Map {
+    /// Returns the low level map type.
+    fn map_type(&self) -> u32 {
+        match self {
+            Map::Array(map) => map.obj.map_type(),
+            Map::PerCpuArray(map) => map.obj.map_type(),
+            Map::ProgramArray(map) => map.obj.map_type(),
+            Map::HashMap(map) => map.obj.map_type(),
+            Map::PerCpuHashMap(map) => map.obj.map_type(),
+            Map::PerfEventArray(map) => map.obj.map_type(),
+            Map::SockHash(map) => map.obj.map_type(),
+            Map::SockMap(map) => map.obj.map_type(),
+            Map::BloomFilter(map) => map.obj.map_type(),
+            Map::LpmTrie(map) => map.obj.map_type(),
+            Map::Stack(map) => map.obj.map_type(),
+            Map::StackTraceMap(map) => map.obj.map_type(),
+            Map::Queue(map) => map.obj.map_type(),
+        }
+    }
+}
+
 macro_rules! impl_try_from_map {
     ($($tx:ident from Map::$ty:ident),+ $(,)?) => {
         $(
@@ -279,7 +300,7 @@ macro_rules! impl_try_from_map {
                         Map::$ty(m) => {
                             $tx::new(m)
                         },
-                        _ => Err(MapError::InvalidMapType{ map_type: map.into()}),
+                        _ => Err(MapError::InvalidMapType{ map_type: map.map_type()}),
                     }
                 }
             }
@@ -292,7 +313,7 @@ macro_rules! impl_try_from_map {
                         Map::$ty(m) => {
                             $tx::new(m)
                         },
-                        _ => Err(MapError::InvalidMapType{ map_type: map.into()}),
+                        _ => Err(MapError::InvalidMapType{ map_type: map.map_type()}),
                     }
                 }
             }
@@ -305,7 +326,7 @@ macro_rules! impl_try_from_map {
                         Map::$ty(m) => {
                             $tx::new(m)
                         },
-                        _ => Err(MapError::InvalidMapType{ map_type: map.into()}),
+                        _ => Err(MapError::InvalidMapType{ map_type: map.map_type()}),
                     }
                 }
             }
@@ -337,7 +358,7 @@ macro_rules! impl_try_from_map_generic_key_or_value {
                         Map::$ty(m) => {
                             $ty::new(m)
                         },
-                        _ => Err(MapError::InvalidMapType{ map_type: map.into()}),
+                        _ => Err(MapError::InvalidMapType{ map_type: map.map_type()}),
                     }
                 }
             }
@@ -350,7 +371,7 @@ macro_rules! impl_try_from_map_generic_key_or_value {
                         Map::$ty(m) => {
                             $ty::new(m)
                         },
-                        _ => Err(MapError::InvalidMapType{ map_type: map.into()}),
+                        _ => Err(MapError::InvalidMapType{ map_type: map.map_type()}),
                     }
                 }
             }
@@ -363,7 +384,7 @@ macro_rules! impl_try_from_map_generic_key_or_value {
                         Map::$ty(m) => {
                             $ty::new(m)
                         },
-                        _ => Err(MapError::InvalidMapType{ map_type: map.into()}),
+                        _ => Err(MapError::InvalidMapType{ map_type: map.map_type()}),
                     }
                 }
             }
@@ -384,7 +405,7 @@ macro_rules! impl_try_from_map_generic_key_and_value {
                         Map::$ty(m) => {
                             $ty::new(m)
                         },
-                        _ => Err(MapError::InvalidMapType{ map_type: map.into()}),
+                        _ => Err(MapError::InvalidMapType{ map_type: map.map_type()}),
                     }
                 }
             }
@@ -397,7 +418,7 @@ macro_rules! impl_try_from_map_generic_key_and_value {
                         Map::$ty(m) => {
                             $ty::new(m)
                         },
-                        _ => Err(MapError::InvalidMapType{ map_type: map.into()}),
+                        _ => Err(MapError::InvalidMapType{ map_type: map.map_type()}),
                 }
             }
             }
@@ -758,34 +779,6 @@ impl TryFrom<u32> for bpf_map_type {
     }
 }
 
-macro_rules! impl_try_from_map_generic_key_or_value {
-    ($($typ:ty),+ $(,)?) => {
-        $(
-            impl From<$typ> for u32 {
-                fn from(map_type: $typ) -> u32 {
-                    match map_type {
-                        Map::Array(map) => map.obj.map_type(),
-                        Map::PerCpuArray(map) => map.obj.map_type(),
-                        Map::ProgramArray(map) => map.obj.map_type(),
-                        Map::HashMap(map) => map.obj.map_type(),
-                        Map::PerCpuHashMap(map) => map.obj.map_type(),
-                        Map::PerfEventArray(map) => map.obj.map_type(),
-                        Map::SockHash(map) => map.obj.map_type(),
-                        Map::SockMap(map) => map.obj.map_type(),
-                        Map::BloomFilter(map) => map.obj.map_type(),
-                        Map::LpmTrie(map) => map.obj.map_type(),
-                        Map::Stack(map) => map.obj.map_type(),
-                        Map::StackTraceMap(map) => map.obj.map_type(),
-                        Map::Queue(map) => map.obj.map_type(),
-                    }
-                }
-            }
-            )+
-    }
-}
-
-impl_try_from_map_generic_key_or_value!(&Map, &mut Map, Map);
-
 pub(crate) struct PerCpuKernelMem {
     bytes: Vec<u8>,
 }