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)))

Uses (10)

Used by (1)