module Raehik.Compat.FlatParse.Basic.Prim where import Raehik.Compat.Data.Primitive.Types import FlatParse.Basic import GHC.Exts ( plusAddr# ) anyPrim :: forall a e st. Prim' a => ParserT st e a anyPrim :: forall a e (st :: ZeroBitType). Prim' a => ParserT st e a anyPrim = Int# -> ParserT st e a -> ParserT st e a forall (st :: ZeroBitType) e r. Int# -> ParserT st e r -> ParserT st e r withEnsure# Int# size# (ParserT st e a -> ParserT st e a) -> ParserT st e a -> ParserT st e a forall a b. (a -> b) -> a -> b $ (ForeignPtrContents -> Addr# -> Addr# -> st -> Res# st e a) -> ParserT st e a forall (st :: ZeroBitType) e a. (ForeignPtrContents -> Addr# -> Addr# -> st -> Res# st e a) -> ParserT st e a ParserT ((ForeignPtrContents -> Addr# -> Addr# -> st -> Res# st e a) -> ParserT st e a) -> (ForeignPtrContents -> Addr# -> Addr# -> st -> Res# st e a) -> ParserT st e a forall a b. (a -> b) -> a -> b $ \ForeignPtrContents _fp Addr# _eob Addr# buf st st -> st -> a -> Addr# -> Res# st e a forall (st :: ZeroBitType) a e. st -> a -> Addr# -> Res# st e a OK# st st (Addr# -> Int# -> a forall a. Prim' a => Addr# -> Int# -> a indexWord8OffAddrAs# Addr# buf Int# 0#) (Addr# buf Addr# -> Int# -> Addr# `plusAddr#` Int# size#) where size# :: Int# size# = a -> Int# forall a. Prim a => a -> Int# sizeOf# (a forall a. HasCallStack => a undefined :: a)