def from_string.size
mylsm-lsm-store@0.6.0.1 · src/StorageBytes.bend:113
import mylsm-lsm-store@0.6.0.1/src/StorageBytes.bend as StorageBytes
import Base
113def from_string.size(+text: String, +size: U32, fits: Bool) -> Maybe<&2, U32>:
114 match text fits:
115 case SNil{} _:
116 Some{size}
117 case SCon{Chr{_scalar}, SNil{}} False{}:
118 None{}
119 case SCon{Chr{scalar}, SNil{}} True{}:
120 Some{(size + utf8.width(scalar) : U32)}
121 case SCon{Chr{_scalar}, SCon{Chr{_next_scalar}, _rest}} False{}:
122 None{}
123 case SCon{Chr{scalar}, SCon{Chr{next_scalar}, rest}} True{}:
124 from_string.size(SCon{Chr{next_scalar}, rest}, (size + utf8.width(scalar) : U32),
125 U32.is_le((size + utf8.width(scalar) : U32),
126 (MAX_RECORD_BYTES() - utf8.width(next_scalar) : U32)))