module Iri.Rendering.Ptr.Poke where import Iri.Prelude import Ptr.Poke {-# NOINLINE urlEncodedByte #-} urlEncodedByte :: Poke Word8 urlEncodedByte :: Poke Word8 urlEncodedByte = (Word8 -> (Char, Word8)) -> Poke Char -> Poke Word8 -> Poke Word8 forall a b c. (a -> (b, c)) -> Poke b -> Poke c -> Poke a forall (f :: * -> *) a b c. Divisible f => (a -> (b, c)) -> f b -> f c -> f a divide (\Word8 byte -> (Char '%', Word8 byte)) Poke Char asciiChar ((Word8 -> (Word8, Word8)) -> Poke Word8 -> Poke Word8 -> Poke Word8 forall a b c. (a -> (b, c)) -> Poke b -> Poke c -> Poke a forall (f :: * -> *) a b c. Divisible f => (a -> (b, c)) -> f b -> f c -> f a divide ((Word8 -> Word8 -> (Word8, Word8)) -> Word8 -> Word8 -> (Word8, Word8) forall a b c. (a -> b -> c) -> b -> a -> c flip Word8 -> Word8 -> (Word8, Word8) forall a. Integral a => a -> a -> (a, a) divMod Word8 16) Poke Word8 asciiHexDigit Poke Word8 asciiHexDigit)