bind-marshal-0.1: Data marshaling library that uses type level equations to optimize buffering.

Bind.Marshal.DesAction.Static

Synopsis

Documentation

des :: forall t sm_tail. (CanDeserialize t, Nat (BufferReq t)) => StaticDesAction (BufferReq t) tSource

des is a deserialization action that has a static buffer requirement. However the resulting action monad of a des can be dynamic or static.

apply_des_to_fixed_buffer :: forall size out_type. (NFData out_type, Nat size) => StaticDesAction size out_type -> DesBuffer -> IO (out_type, DesBuffer)Source

To execute a deserialization action: - determine the final data model of the deserialization action monad by fixing the initial data model as DMNil. - evaluate the action via CPS

apply_des_to_fixed_buffer_unsafe :: forall size out_type. StaticDesAction size out_type -> DesBuffer -> IO (out_type, DesBuffer)Source