MCPcopy Create free account
hub / github.com/NativeScript/SimDeck / parse_nettop_byte_value

Function parse_nettop_byte_value

packages/server/src/performance.rs:911–947  ·  view source on GitHub ↗
(value: &str)

Source from the content-addressed store, hash-verified

909}
910
911fn parse_nettop_byte_value(value: &str) -> Option<u64> {
912 let value = value.trim().trim_matches('"').replace('_', "");
913 if value.is_empty() || value == "-" {
914 return None;
915 }
916 if let Ok(bytes) = value.parse::<u64>() {
917 return Some(bytes);
918 }
919
920 let number_end = value
921 .char_indices()
922 .find_map(|(index, character)| {
923 (!character.is_ascii_digit() && character != '.').then_some(index)
924 })
925 .unwrap_or(value.len());
926 if number_end == 0 {
927 return None;
928 }
929
930 let number = value[..number_end].parse::<f64>().ok()?;
931 if !number.is_finite() || number < 0.0 {
932 return None;
933 }
934 let suffix = value[number_end..]
935 .trim()
936 .trim_end_matches("/s")
937 .to_ascii_lowercase();
938 let multiplier = match suffix.as_str() {
939 "" | "b" | "byte" | "bytes" => 1.0,
940 "k" | "kb" | "kib" => 1024.0,
941 "m" | "mb" | "mib" => 1024.0 * 1024.0,
942 "g" | "gb" | "gib" => 1024.0 * 1024.0 * 1024.0,
943 "t" | "tb" | "tib" => 1024.0 * 1024.0 * 1024.0 * 1024.0,
944 _ => return None,
945 };
946 Some((number * multiplier).round() as u64)
947}
948
949fn compact_lsof_endpoint(line: &str) -> String {
950 line.split_whitespace()

Callers 1

Calls 3

is_emptyMethod · 0.80
replaceMethod · 0.65
as_strMethod · 0.45

Tested by

no test coverage detected