- pairToStr ∷ (T.Text, T.Text) → String
- {-# INLINE pairToStr #-}
- pairToStr (k, v)
- = encode k ⧺ ('=':encode v)
-
- encode ∷ T.Text → String
- {-# INLINE encode #-}
- encode = Url.encode ∘ BS.unpack ∘ encodeUtf8
+ mkBBB ∷ [(T.Text, T.Text)] → BBB.Builder → BBB.Builder
+ {-# INLINEABLE mkBBB #-}
+ mkBBB [] acc = acc
+ mkBBB (kv:[]) acc = acc ⊕ pair kv
+ mkBBB (kv:xs) acc = mkBBB xs (acc ⊕ pair kv ⊕ semicolon)
+
+ pair ∷ (T.Text, T.Text) → BBB.Builder
+ {-# INLINE pair #-}
+ pair (k, v)
+ = encodeText k ⊕ equal ⊕ encodeText v
+
+ encodeText ∷ T.Text → BBB.Builder
+ {-# INLINE encodeText #-}
+ encodeText = BBB.fromByteString ∘ URI.encode ∘ encodeUtf8