LCOV - code coverage report
Current view: top level - src/dwarf/editor/types - base.rs (source / functions) Coverage Total Hit
Test: lief.lcov Lines: 0.0 % 33 0
Test Date: 2025-06-24:00:00:00 Functions: 0.0 % 8 0

            Line data    Source code
       1              : use lief_ffi as ffi;
       2              : 
       3              : use crate::common::FromFFI;
       4              : use crate::dwarf::editor::types::EditorType;
       5              : 
       6              : /// This structure represents a primitive type like `int, char`.
       7              : pub struct Base {
       8              :     ptr: cxx::UniquePtr<ffi::DWARF_editor_BaseType>,
       9              : }
      10              : 
      11              : 
      12              : #[allow(non_camel_case_types)]
      13            0 : #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
      14              : pub enum Encoding {
      15              :     NONE,
      16              :     ADDRESS,
      17              :     SIGNED,
      18              :     SIGNED_CHAR,
      19              :     UNSIGNED,
      20              :     UNSIGNED_CHAR,
      21              :     BOOLEAN,
      22              :     FLOAT,
      23              :     UNKNOWN(u32),
      24              : }
      25              : 
      26              : impl From<u32> for Encoding {
      27            0 :     fn from(value: u32) -> Self {
      28            0 :         match value {
      29            0 :             0x00000000 => Encoding::NONE,
      30            0 :             0x00000001 => Encoding::ADDRESS,
      31            0 :             0x00000002 => Encoding::SIGNED,
      32            0 :             0x00000003 => Encoding::SIGNED_CHAR,
      33            0 :             0x00000004 => Encoding::UNSIGNED,
      34            0 :             0x00000005 => Encoding::UNSIGNED_CHAR,
      35            0 :             0x00000006 => Encoding::BOOLEAN,
      36            0 :             0x00000007 => Encoding::FLOAT,
      37            0 :             _ => Encoding::UNKNOWN(value),
      38              : 
      39              :         }
      40            0 :     }
      41              : }
      42              : 
      43              : 
      44              : impl From<Encoding> for u32 {
      45            0 :     fn from(value: Encoding) -> Self {
      46            0 :         match value {
      47            0 :             Encoding::NONE => 0,
      48            0 :             Encoding::ADDRESS => 1,
      49            0 :             Encoding::SIGNED => 2,
      50            0 :             Encoding::SIGNED_CHAR => 3,
      51            0 :             Encoding::UNSIGNED => 4,
      52            0 :             Encoding::UNSIGNED_CHAR => 5,
      53            0 :             Encoding::BOOLEAN => 6,
      54            0 :             Encoding::FLOAT => 7,
      55            0 :             Encoding::UNKNOWN(value) => value,
      56              : 
      57              :         }
      58            0 :     }
      59              : }
      60              : 
      61              : impl FromFFI<ffi::DWARF_editor_BaseType> for Base {
      62            0 :     fn from_ffi(cmd: cxx::UniquePtr<ffi::DWARF_editor_BaseType>) -> Self {
      63            0 :         Self {
      64            0 :             ptr: cmd,
      65            0 :         }
      66            0 :     }
      67              : }
      68              : 
      69              : 
      70              : impl EditorType for Base {
      71            0 :     fn get_base(&self) -> &ffi::DWARF_editor_Type {
      72            0 :         self.ptr.as_ref().unwrap().as_ref()
      73            0 :     }
      74              : }
      75              : 
        

Generated by: LCOV version 2.1-1