erlang自定义二进制协议
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

202 rader
4.3 KiB

  1. -opaque int8() :: -128..127.
  2. -opaque int16() :: -32768..32767.
  3. -opaque int32() :: -2147483648..2147483647.
  4. -opaque int64() :: -9223372036854775808..9223372036854775807.
  5. -opaque uint8() :: 0..255.
  6. -opaque uint16() :: 0..65536.
  7. -opaque uint32() :: 0..4294967295.
  8. -opaque uint64() :: 0..18446744073709551615.
  9. -opaque double() :: float().
  10. -record(test ,{
  11. aa = "" :: string()
  12. }).
  13. -record(phoneNumber ,{
  14. number = undefined :: #test{}
  15. , type = 0 :: int32()
  16. }).
  17. -record(person ,{
  18. name = "" :: string()
  19. , id = 0 :: int32()
  20. , email = "" :: string()
  21. , phone = [] :: [#phoneNumber{}]
  22. }).
  23. -record(addressBook ,{
  24. person = [] :: [#person{}]
  25. , other = [] :: [#person{}]
  26. }).
  27. -record(union ,{
  28. test = "" :: string()
  29. , type = 0 :: int32()
  30. }).
  31. -record(tbool ,{
  32. bool = false :: boolean()
  33. }).
  34. -record(tint8 ,{
  35. int1 = 0 :: int8()
  36. , int2 = 0 :: int8()
  37. }).
  38. -record(tuint8 ,{
  39. int1 = 0 :: uint8()
  40. , int2 = 0 :: uint8()
  41. }).
  42. -record(tint16 ,{
  43. int1 = 0 :: int16()
  44. , int2 = 0 :: int16()
  45. }).
  46. -record(tuint16 ,{
  47. int1 = 0 :: uint16()
  48. , int2 = 0 :: uint16()
  49. }).
  50. -record(tint32 ,{
  51. int1 = 0 :: int32()
  52. , int2 = 0 :: int32()
  53. }).
  54. -record(tuint32 ,{
  55. int1 = 0 :: uint32()
  56. , int2 = 0 :: uint32()
  57. }).
  58. -record(tint64 ,{
  59. int1 = 0 :: int64()
  60. , int2 = 0 :: int64()
  61. }).
  62. -record(tuint64 ,{
  63. int1 = 0 :: uint64()
  64. , int2 = 0 :: uint64()
  65. }).
  66. -record(tinteger ,{
  67. int1 = 0 :: integer()
  68. , int2 = 0 :: integer()
  69. , int3 = 0 :: integer()
  70. , int4 = 0 :: integer()
  71. , int5 = 0 :: integer()
  72. , int6 = 0 :: integer()
  73. , int7 = 0 :: integer()
  74. , int8 = 0 :: integer()
  75. }).
  76. -record(tnumber ,{
  77. int1 = 0 :: number()
  78. , int2 = 0 :: number()
  79. , int3 = 0 :: number()
  80. , int4 = 0 :: number()
  81. , int5 = 0 :: number()
  82. , int6 = 0 :: number()
  83. , int7 = 0 :: number()
  84. , int8 = 0 :: number()
  85. , float1 = 0 :: number()
  86. , float2 = 0 :: number()
  87. }).
  88. -record(tfloat ,{
  89. int1 = 0.0 :: float()
  90. , int2 = 0.0 :: float()
  91. }).
  92. -record(tdouble ,{
  93. int1 = 0.0 :: double()
  94. , int2 = 0.0 :: double()
  95. }).
  96. -record(tstring ,{
  97. int1 = "" :: string()
  98. , int2 = "" :: string()
  99. }).
  100. -record(tlistbool ,{
  101. int1 = [] :: [boolean()]
  102. }).
  103. -record(tlistint8 ,{
  104. int1 = [] :: [int8()]
  105. }).
  106. -record(tlistuint8 ,{
  107. int1 = [] :: [uint8()]
  108. }).
  109. -record(tlistint16 ,{
  110. int1 = [] :: [int16()]
  111. }).
  112. -record(tlistuint16 ,{
  113. int1 = [] :: [uint16()]
  114. }).
  115. -record(tlistint32 ,{
  116. int1 = [] :: [int32()]
  117. }).
  118. -record(tlistuint32 ,{
  119. int1 = [] :: [uint32()]
  120. }).
  121. -record(tlistint64 ,{
  122. int1 = [] :: [int64()]
  123. }).
  124. -record(tlistuint64 ,{
  125. int1 = [] :: [uint64()]
  126. }).
  127. -record(tlistinteger ,{
  128. int1 = [] :: [integer()]
  129. }).
  130. -record(tlistnumber ,{
  131. int1 = [] :: [number()]
  132. }).
  133. -record(tlistfloat ,{
  134. int1 = [] :: [float()]
  135. }).
  136. -record(tlistdouble ,{
  137. int1 = [] :: [double()]
  138. }).
  139. -record(tliststring ,{
  140. int1 = [] :: [string()]
  141. }).
  142. -record(tlistunion ,{
  143. int1 = [] :: [#union{}]
  144. }).
  145. -record(allType ,{
  146. bool = false :: boolean()
  147. , int8 = 0 :: int8()
  148. , uint8 = 0 :: uint8()
  149. , int16 = 0 :: int16()
  150. , uint16 = 0 :: uint16()
  151. , int32 = 0 :: int32()
  152. , uint32 = 0 :: uint32()
  153. , int64 = 0 :: int64()
  154. , uint64 = 0 :: uint64()
  155. , inte8 = 0 :: integer()
  156. , uinte8 = 0 :: integer()
  157. , inte16 = 0 :: integer()
  158. , uinte16 = 0 :: integer()
  159. , inte32 = 0 :: integer()
  160. , uinte32 = 0 :: integer()
  161. , inte64 = 0 :: integer()
  162. , uinte64 = 0 :: integer()
  163. , num8 = 0 :: number()
  164. , unum8 = 0 :: number()
  165. , num16 = 0 :: number()
  166. , unum16 = 0 :: number()
  167. , num32 = 0 :: number()
  168. , unum32 = 0 :: number()
  169. , num64 = 0 :: number()
  170. , unum64 = 0 :: number()
  171. , numfloat = 0 :: number()
  172. , numdouble = 0 :: number()
  173. , float = 0.0 :: float()
  174. , double = 0.0 :: double()
  175. , string1 = "" :: string()
  176. , string2 = "" :: string()
  177. , union = undefined :: #union{}
  178. , lbool = [] :: [boolean()]
  179. , lint8 = [] :: [int8()]
  180. , luint8 = [] :: [uint8()]
  181. , lint16 = [] :: [int16()]
  182. , luint16 = [] :: [uint16()]
  183. , lint32 = [] :: [int32()]
  184. , luint32 = [] :: [uint32()]
  185. , lint64 = [] :: [int64()]
  186. , luint64 = [] :: [uint64()]
  187. , linte8 = [] :: [integer()]
  188. , linte16 = [] :: [integer()]
  189. , linte32 = [] :: [integer()]
  190. , linte64 = [] :: [integer()]
  191. , lnum8 = [] :: [number()]
  192. , lnum16 = [] :: [number()]
  193. , lnum32 = [] :: [number()]
  194. , lnum64 = [] :: [number()]
  195. , lnfloat32 = [] :: [number()]
  196. , lnfloat64 = [] :: [number()]
  197. , lfloat = [] :: [float()]
  198. , ldouble = [] :: [double()]
  199. , lstring = [] :: [string()]
  200. , lunion = [] :: [#union{}]
  201. }).