{-|
Module      : Net.DNSBase.RData.SVCB.SPVList
Description : Internal helper for presenting comma-separated SVCB value lists
Copyright   : (c) Viktor Dukhovni, 2026
License     : BSD-3-Clause
Maintainer  : ietf-dane@dukhovni.org
Stability   : unstable

A small helper used by the multi-valued SVCB service-parameter
types ('Net.DNSBase.RData.SVCB.SPV_alpn' and friends) to emit their values in the
RFC 9460 comma-separated zone-file form.
-}

module Net.DNSBase.RData.SVCB.SPVList
    ( presentSPVList
    ) where

import Net.DNSBase.Internal.Util

import Net.DNSBase.Text

-- | Render a non-empty list of byte-string values as a single
-- comma-separated DNS character-string, in the form expected for
-- multi-valued service parameters such as @alpn@.
presentSPVList :: (NonEmpty ShortByteString) -> Builder -> Builder
presentSPVList :: NonEmpty ShortByteString -> Builder -> Builder
presentSPVList (ShortByteString
v :| [ShortByteString]
vs) = [ShortByteString] -> Builder -> Builder
presentCSVList (ShortByteString
v ShortByteString -> [ShortByteString] -> [ShortByteString]
forall a. a -> [a] -> [a]
: [ShortByteString]
vs)