dnsbase-1.0.0.0: src/Net/DNSBase/Encode/Metric.hs
{-|
Module : Net.DNSBase.Encode.Metric
Description : Length-tracking Builder for wire-form encoding
Copyright : (c) Viktor Dukhovni, 2026
License : BSD-3-Clause
Maintainer : ietf-dane@dukhovni.org
Stability : unstable
'SizedBuilder' is a 'Data.ByteString.Builder' paired with its
byte length, accumulated as the builder is assembled. Used
inside RR-data encoders when an outer length-prefixed field
needs the encoded value's length up front (RDLENGTH and the
16-bit length prefixes that introduce SVCB option values, EDNS
option values, and similar). The @mb*@ converters wrap the
corresponding low-level builders so their byte-cost is
tracked.
-}
module Net.DNSBase.Encode.Metric
( SizedBuilder
-- exported pattern
, pattern SizedBuilder
-- exported converters
, mbErr
, mbWord8
, mbWord16
, mbWord32
, mbWord64
, mbByteString
, mbByteStringLen8
, mbByteStringLen16
, mbShortByteString
, mbShortByteStringLen8
, mbShortByteStringLen16
, mbIPv4
, mbIPv6
) where
import Net.DNSBase.Encode.Internal.Metric