opt. proj struct

This commit is contained in:
LollipopKit
2023-01-29 16:56:40 +08:00
parent 49f9b0b179
commit f3c670d82c
15 changed files with 266 additions and 249 deletions

View File

@@ -1,11 +1,3 @@
get initMemory => Memory(
total: 1,
used: 0,
free: 1,
cache: 0,
avail: 1,
);
class Memory {
int total;
int used;
@@ -19,3 +11,23 @@ class Memory {
required this.cache,
required this.avail});
}
final memItemReg = RegExp(r'([A-Z].+:)\s+([0-9]+) kB');
Memory parseMem(String raw) {
final items = raw.split('\n').map((e) => memItemReg.firstMatch(e)).toList();
final total = int.parse(
items.firstWhere((e) => e?.group(1) == 'MemTotal:')?.group(2) ?? '1');
final free = int.parse(
items.firstWhere((e) => e?.group(1) == 'MemFree:')?.group(2) ?? '0');
final cached = int.parse(
items.firstWhere((e) => e?.group(1) == 'Cached:')?.group(2) ?? '0');
final available = int.parse(
items.firstWhere((e) => e?.group(1) == 'MemAvailable:')?.group(2) ?? '0');
return Memory(
total: total,
used: total - available,
free: free,
cache: cached,
avail: available);
}