fn process_raw_data()

in src/data/meminfodata.rs [233:417]


    fn process_raw_data(&mut self, buffer: Data) -> Result<ProcessedData> {
        let raw_value = match buffer {
            Data::MeminfoDataRaw(ref value) => value,
            _ => panic!("Invalid Data type in raw file"),
        };
        let reader = BufReader::new(raw_value.data.as_bytes());
        let meminfo = Meminfo::from_reader(reader)?;
        let mut meminfo_data = MeminfoData::new();
        meminfo_data.add(MeminfoKeys::MemTotal.to_string(), meminfo.mem_total);
        meminfo_data.add(MeminfoKeys::MemFree.to_string(), meminfo.mem_free);
        meminfo_data.add(
            MeminfoKeys::MemAvailable.to_string(),
            meminfo.mem_available.unwrap_or_default(),
        );
        meminfo_data.add(MeminfoKeys::Buffers.to_string(), meminfo.buffers);
        meminfo_data.add(MeminfoKeys::Cached.to_string(), meminfo.cached);
        meminfo_data.add(MeminfoKeys::SwapCached.to_string(), meminfo.swap_cached);
        meminfo_data.add(MeminfoKeys::Active.to_string(), meminfo.active);
        meminfo_data.add(MeminfoKeys::Inactive.to_string(), meminfo.inactive);
        meminfo_data.add(
            MeminfoKeys::ActiveAnon.to_string(),
            meminfo.active_anon.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::InactiveAnon.to_string(),
            meminfo.inactive_anon.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::ActiveFile.to_string(),
            meminfo.active_file.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::InactiveFile.to_string(),
            meminfo.inactive_file.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::Unevictable.to_string(),
            meminfo.unevictable.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::Mlocked.to_string(),
            meminfo.mlocked.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::MmapCopy.to_string(),
            meminfo.mmap_copy.unwrap_or_default(),
        );
        meminfo_data.add(MeminfoKeys::SwapTotal.to_string(), meminfo.swap_total);
        meminfo_data.add(MeminfoKeys::SwapFree.to_string(), meminfo.swap_free);
        meminfo_data.add(MeminfoKeys::Dirty.to_string(), meminfo.dirty);
        meminfo_data.add(MeminfoKeys::Writeback.to_string(), meminfo.writeback);
        meminfo_data.add(
            MeminfoKeys::AnonPages.to_string(),
            meminfo.anon_pages.unwrap_or_default(),
        );
        meminfo_data.add(MeminfoKeys::Mapped.to_string(), meminfo.mapped);
        meminfo_data.add(
            MeminfoKeys::Shmem.to_string(),
            meminfo.shmem.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::KReclaimable.to_string(),
            meminfo.k_reclaimable.unwrap_or_default(),
        );
        meminfo_data.add(MeminfoKeys::Slab.to_string(), meminfo.slab);
        meminfo_data.add(
            MeminfoKeys::SReclaimable.to_string(),
            meminfo.s_reclaimable.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::SUnreclaim.to_string(),
            meminfo.s_unreclaim.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::KernelStack.to_string(),
            meminfo.kernel_stack.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::PageTables.to_string(),
            meminfo.page_tables.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::Quicklists.to_string(),
            meminfo.quicklists.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::NfsUnstable.to_string(),
            meminfo.nfs_unstable.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::Bounce.to_string(),
            meminfo.bounce.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::WritebackTmp.to_string(),
            meminfo.writeback_tmp.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::CommitLimit.to_string(),
            meminfo.commit_limit.unwrap_or_default(),
        );
        meminfo_data.add(MeminfoKeys::CommittedAs.to_string(), meminfo.committed_as);
        meminfo_data.add(MeminfoKeys::VmallocTotal.to_string(), meminfo.vmalloc_total);
        meminfo_data.add(MeminfoKeys::VmallocUsed.to_string(), meminfo.vmalloc_used);
        meminfo_data.add(MeminfoKeys::VmallocChunk.to_string(), meminfo.vmalloc_chunk);
        meminfo_data.add(
            MeminfoKeys::PerCpu.to_string(),
            meminfo.per_cpu.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::HardwareCorrupted.to_string(),
            meminfo.hardware_corrupted.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::AnonHugepages.to_string(),
            meminfo.anon_hugepages.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::ShmemHugepages.to_string(),
            meminfo.shmem_hugepages.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::ShmemPmdMapped.to_string(),
            meminfo.shmem_pmd_mapped.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::FilePmdMapped.to_string(),
            meminfo.file_pmd_mapped.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::FileHugePages.to_string(),
            meminfo.file_huge_pages.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::CmaTotal.to_string(),
            meminfo.cma_total.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::CmaFree.to_string(),
            meminfo.cma_free.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::HugepagesTotal.to_string(),
            meminfo.hugepages_total.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::HugepagesFree.to_string(),
            meminfo.hugepages_free.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::HugepagesRsvd.to_string(),
            meminfo.hugepages_rsvd.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::HugepagesSurp.to_string(),
            meminfo.hugepages_surp.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::Hugepagesize.to_string(),
            meminfo.hugepagesize.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::Hugetlb.to_string(),
            meminfo.hugetlb.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::DirectMap4k.to_string(),
            meminfo.direct_map_4k.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::DirectMap4M.to_string(),
            meminfo.direct_map_4M.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::DirectMap2M.to_string(),
            meminfo.direct_map_2M.unwrap_or_default(),
        );
        meminfo_data.add(
            MeminfoKeys::DirectMap1G.to_string(),
            meminfo.direct_map_1G.unwrap_or_default(),
        );
        meminfo_data.set_time(raw_value.time);
        let processed_data = ProcessedData::MeminfoData(meminfo_data);
        Ok(processed_data)
    }