@@ -84,30 +84,31 @@ utils::StrExpected<SizeByte> parse_size(const std::string &size) {
8484 return std::unexpected (maybe_value_unit.error ());
8585 }
8686
87- auto [value, unit] = maybe_value_unit.value ();
87+ auto [value_32, unit] = maybe_value_unit.value ();
88+ uint64_t value_64 = static_cast <uint64_t >(value_32);
8889 if (unit == Bit::suffix) {
89- return SizeByte (Size<Bit>(value ));
90+ return SizeByte (Size<Bit>(value_64 ));
9091 }
9192 if (unit == Byte::suffix) {
92- return SizeByte (value );
93+ return SizeByte (value_64 );
9394 }
9495 if (unit == KBit::suffix) {
95- return SizeByte (Size<KBit>(value ));
96+ return SizeByte (Size<KBit>(value_64 ));
9697 }
9798 if (unit == KByte::suffix) {
98- return SizeByte (Size<KByte>(value ));
99+ return SizeByte (Size<KByte>(value_64 ));
99100 }
100101 if (unit == MBit::suffix) {
101- return SizeByte (Size<MBit>(value ));
102+ return SizeByte (Size<MBit>(value_64 ));
102103 }
103104 if (unit == MByte::suffix) {
104- return SizeByte (Size<MByte>(value ));
105+ return SizeByte (Size<MByte>(value_64 ));
105106 }
106107 if (unit == GBit::suffix) {
107- return SizeByte (Size<GBit>(value ));
108+ return SizeByte (Size<GBit>(value_64 ));
108109 }
109110 if (unit == GByte::suffix) {
110- return SizeByte (Size<GByte>(value ));
111+ return SizeByte (Size<GByte>(value_64 ));
111112 }
112113 return std::unexpected (" Unsupported size unit: " + unit);
113114}
0 commit comments