ivory-serialize 0.1.0.3 → 0.1.0.4
raw patch · 2 files changed
+5/−49 lines, 2 filesdep ~basedep ~base-compatdep ~filepath
Dependency ranges changed: base, base-compat, filepath, ivory, ivory-artifact, monadLib
Files
- ivory-serialize.cabal +5/−3
- support/ivory_serialize_prim.h +0/−46
ivory-serialize.cabal view
@@ -1,5 +1,5 @@ name: ivory-serialize-version: 0.1.0.3+version: 0.1.0.4 synopsis: Serialization library for Ivory. description: Used to automatically pack and unpack Ivory structures in big or little endian. author: Galois, Inc.@@ -13,7 +13,7 @@ source-repository this type: git location: https://github.com/GaloisInc/ivory- tag: hackage-0103+ tag: hackage-0.1.0.4 @@ -27,7 +27,7 @@ Ivory.Serialize.Struct, Paths_ivory_serialize - build-depends: base >= 4.6 && < 5,+ build-depends: base >= 4.7 && < 5, base-compat, filepath, monadLib,@@ -37,3 +37,5 @@ hs-source-dirs: src default-language: Haskell2010 ghc-options: -Wall+ if impl(ghc == 8.0.1)+ ghc-options: -Wno-redundant-constraints
support/ivory_serialize_prim.h view
@@ -273,55 +273,30 @@ } static inline uint16_t ivory_serialize_unpack_prim_2_le(const uint8_t *src){-#ifndef CONFIG_IVORY_SERIALIZE_BIG_ENDIAN return (((uint16_t) src[0] << 0) | ((uint16_t) src[1] << 8));-#else- return (((uint16_t) src[1] << 0) |- ((uint16_t) src[0] << 8));-#endif } static inline uint16_t ivory_serialize_unpack_prim_2_be(const uint8_t *src){-#ifndef CONFIG_IVORY_SERIALIZE_BIG_ENDIAN return (((uint16_t) src[1] << 0) | ((uint16_t) src[0] << 8));-#else- return (((uint16_t) src[0] << 0) |- ((uint16_t) src[1] << 8));-#endif } static inline uint32_t ivory_serialize_unpack_prim_4_le(const uint8_t *src){-#ifndef CONFIG_IVORY_SERIALIZE_BIG_ENDIAN return (((uint32_t) src[0] << 0) | ((uint32_t) src[1] << 8) | ((uint32_t) src[2] << 16) | ((uint32_t) src[3] << 24));-#else- return (((uint32_t) src[3] << 0) |- ((uint32_t) src[2] << 8) |- ((uint32_t) src[1] << 16) |- ((uint32_t) src[0] << 24));-#endif } static inline uint32_t ivory_serialize_unpack_prim_4_be(const uint8_t *src){-#ifndef CONFIG_IVORY_SERIALIZE_BIG_ENDIAN return (((uint32_t) src[3] << 0) | ((uint32_t) src[2] << 8) | ((uint32_t) src[1] << 16) | ((uint32_t) src[0] << 24));-#else- return (((uint32_t) src[0] << 0) |- ((uint32_t) src[1] << 8) |- ((uint32_t) src[2] << 16) |- ((uint32_t) src[3] << 24));-#endif } static inline uint64_t ivory_serialize_unpack_prim_8_le(const uint8_t *src){-#ifndef CONFIG_IVORY_SERIALIZE_BIG_ENDIAN return (((uint64_t) src[0] << 0) | ((uint64_t) src[1] << 8) | ((uint64_t) src[2] << 16) |@@ -330,20 +305,9 @@ ((uint64_t) src[5] << 40) | ((uint64_t) src[6] << 48) | ((uint64_t) src[7] << 56));-#else- return (((uint64_t) src[7] << 0) |- ((uint64_t) src[6] << 8) |- ((uint64_t) src[5] << 16) |- ((uint64_t) src[4] << 24) |- ((uint64_t) src[3] << 32) |- ((uint64_t) src[2] << 40) |- ((uint64_t) src[1] << 48) |- ((uint64_t) src[0] << 56));-#endif } static inline uint64_t ivory_serialize_unpack_prim_8_be(const uint8_t *src){-#ifndef CONFIG_IVORY_SERIALIZE_BIG_ENDIAN return (((uint64_t) src[7] << 0) | ((uint64_t) src[6] << 8) | ((uint64_t) src[5] << 16) |@@ -352,16 +316,6 @@ ((uint64_t) src[2] << 40) | ((uint64_t) src[1] << 48) | ((uint64_t) src[0] << 56));-#else- return (((uint64_t) src[0] << 0) |- ((uint64_t) src[1] << 8) |- ((uint64_t) src[2] << 16) |- ((uint64_t) src[3] << 24) |- ((uint64_t) src[4] << 32) |- ((uint64_t) src[5] << 40) |- ((uint64_t) src[6] << 48) |- ((uint64_t) src[7] << 56));-#endif } // Functions to cast unpacked result to specific destination types: