@tellahq/rescript 10.1.4-republish-2 → 10.1.4-republish-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. package/darwin/bsb_helper.exe +0 -0
  2. package/darwin/bsc.exe +0 -0
  3. package/darwin/ninja.exe +0 -0
  4. package/darwin/rescript.exe +0 -0
  5. package/darwinarm64/bsb_helper.exe +0 -0
  6. package/darwinarm64/bsc.exe +0 -0
  7. package/darwinarm64/ninja.exe +0 -0
  8. package/darwinarm64/rescript.exe +0 -0
  9. package/lib/ocaml/arg.cmi +0 -0
  10. package/lib/ocaml/arg.cmt +0 -0
  11. package/lib/ocaml/arg.cmti +0 -0
  12. package/lib/ocaml/arg.ml +359 -0
  13. package/lib/ocaml/arg.mli +185 -0
  14. package/lib/ocaml/array.cmi +0 -0
  15. package/lib/ocaml/array.cmt +0 -0
  16. package/lib/ocaml/array.cmti +0 -0
  17. package/lib/ocaml/array.ml +307 -0
  18. package/lib/ocaml/array.mli +275 -0
  19. package/lib/ocaml/arrayLabels.cmi +0 -0
  20. package/lib/ocaml/arrayLabels.cmt +0 -0
  21. package/lib/ocaml/arrayLabels.cmti +0 -0
  22. package/lib/ocaml/arrayLabels.ml +307 -0
  23. package/lib/ocaml/arrayLabels.mli +276 -0
  24. package/lib/ocaml/belt.cmi +0 -0
  25. package/lib/ocaml/belt.cmt +0 -0
  26. package/lib/ocaml/belt.ml +352 -0
  27. package/lib/ocaml/belt_Array.cmi +0 -0
  28. package/lib/ocaml/belt_Array.cmt +0 -0
  29. package/lib/ocaml/belt_Array.cmti +0 -0
  30. package/lib/ocaml/belt_Array.ml +525 -0
  31. package/lib/ocaml/belt_Array.mli +707 -0
  32. package/lib/ocaml/belt_Float.cmi +0 -0
  33. package/lib/ocaml/belt_Float.cmt +0 -0
  34. package/lib/ocaml/belt_Float.cmti +0 -0
  35. package/lib/ocaml/belt_Float.ml +50 -0
  36. package/lib/ocaml/belt_Float.mli +106 -0
  37. package/lib/ocaml/belt_HashMap.cmi +0 -0
  38. package/lib/ocaml/belt_HashMap.cmt +0 -0
  39. package/lib/ocaml/belt_HashMap.cmti +0 -0
  40. package/lib/ocaml/belt_HashMap.ml +226 -0
  41. package/lib/ocaml/belt_HashMap.mli +436 -0
  42. package/lib/ocaml/belt_HashMapInt.cmi +0 -0
  43. package/lib/ocaml/belt_HashMapInt.cmt +0 -0
  44. package/lib/ocaml/belt_HashMapInt.cmti +0 -0
  45. package/lib/ocaml/belt_HashMapInt.ml +206 -0
  46. package/lib/ocaml/belt_HashMapInt.mli +50 -0
  47. package/lib/ocaml/belt_HashMapString.cmi +0 -0
  48. package/lib/ocaml/belt_HashMapString.cmt +0 -0
  49. package/lib/ocaml/belt_HashMapString.cmti +0 -0
  50. package/lib/ocaml/belt_HashMapString.ml +206 -0
  51. package/lib/ocaml/belt_HashMapString.mli +50 -0
  52. package/lib/ocaml/belt_HashSet.cmi +0 -0
  53. package/lib/ocaml/belt_HashSet.cmt +0 -0
  54. package/lib/ocaml/belt_HashSet.cmti +0 -0
  55. package/lib/ocaml/belt_HashSet.ml +196 -0
  56. package/lib/ocaml/belt_HashSet.mli +125 -0
  57. package/lib/ocaml/belt_HashSetInt.cmi +0 -0
  58. package/lib/ocaml/belt_HashSetInt.cmt +0 -0
  59. package/lib/ocaml/belt_HashSetInt.cmti +0 -0
  60. package/lib/ocaml/belt_HashSetInt.ml +155 -0
  61. package/lib/ocaml/belt_HashSetInt.mli +74 -0
  62. package/lib/ocaml/belt_HashSetString.cmi +0 -0
  63. package/lib/ocaml/belt_HashSetString.cmt +0 -0
  64. package/lib/ocaml/belt_HashSetString.cmti +0 -0
  65. package/lib/ocaml/belt_HashSetString.ml +156 -0
  66. package/lib/ocaml/belt_HashSetString.mli +74 -0
  67. package/lib/ocaml/belt_Id.cmi +0 -0
  68. package/lib/ocaml/belt_Id.cmt +0 -0
  69. package/lib/ocaml/belt_Id.cmti +0 -0
  70. package/lib/ocaml/belt_Id.ml +133 -0
  71. package/lib/ocaml/belt_Id.mli +171 -0
  72. package/lib/ocaml/belt_Int.cmi +0 -0
  73. package/lib/ocaml/belt_Int.cmt +0 -0
  74. package/lib/ocaml/belt_Int.cmti +0 -0
  75. package/lib/ocaml/belt_Int.ml +50 -0
  76. package/lib/ocaml/belt_Int.mli +103 -0
  77. package/lib/ocaml/belt_List.cmi +0 -0
  78. package/lib/ocaml/belt_List.cmt +0 -0
  79. package/lib/ocaml/belt_List.cmti +0 -0
  80. package/lib/ocaml/belt_List.ml +803 -0
  81. package/lib/ocaml/belt_List.mli +844 -0
  82. package/lib/ocaml/belt_Map.cmi +0 -0
  83. package/lib/ocaml/belt_Map.cmt +0 -0
  84. package/lib/ocaml/belt_Map.cmti +0 -0
  85. package/lib/ocaml/belt_Map.ml +170 -0
  86. package/lib/ocaml/belt_Map.mli +496 -0
  87. package/lib/ocaml/belt_MapDict.cmi +0 -0
  88. package/lib/ocaml/belt_MapDict.cmt +0 -0
  89. package/lib/ocaml/belt_MapDict.cmti +0 -0
  90. package/lib/ocaml/belt_MapDict.ml +278 -0
  91. package/lib/ocaml/belt_MapDict.mli +268 -0
  92. package/lib/ocaml/belt_MapInt.cmi +0 -0
  93. package/lib/ocaml/belt_MapInt.cmt +0 -0
  94. package/lib/ocaml/belt_MapInt.cmti +0 -0
  95. package/lib/ocaml/belt_MapInt.ml +169 -0
  96. package/lib/ocaml/belt_MapInt.mli +187 -0
  97. package/lib/ocaml/belt_MapString.cmi +0 -0
  98. package/lib/ocaml/belt_MapString.cmt +0 -0
  99. package/lib/ocaml/belt_MapString.cmti +0 -0
  100. package/lib/ocaml/belt_MapString.ml +169 -0
  101. package/lib/ocaml/belt_MapString.mli +187 -0
  102. package/lib/ocaml/belt_MutableMap.cmi +0 -0
  103. package/lib/ocaml/belt_MutableMap.cmt +0 -0
  104. package/lib/ocaml/belt_MutableMap.cmti +0 -0
  105. package/lib/ocaml/belt_MutableMap.ml +241 -0
  106. package/lib/ocaml/belt_MutableMap.mli +145 -0
  107. package/lib/ocaml/belt_MutableMapInt.cmi +0 -0
  108. package/lib/ocaml/belt_MutableMapInt.cmt +0 -0
  109. package/lib/ocaml/belt_MutableMapInt.cmti +0 -0
  110. package/lib/ocaml/belt_MutableMapInt.ml +172 -0
  111. package/lib/ocaml/belt_MutableMapInt.mli +135 -0
  112. package/lib/ocaml/belt_MutableMapString.cmi +0 -0
  113. package/lib/ocaml/belt_MutableMapString.cmt +0 -0
  114. package/lib/ocaml/belt_MutableMapString.cmti +0 -0
  115. package/lib/ocaml/belt_MutableMapString.ml +172 -0
  116. package/lib/ocaml/belt_MutableMapString.mli +135 -0
  117. package/lib/ocaml/belt_MutableQueue.cmi +0 -0
  118. package/lib/ocaml/belt_MutableQueue.cmt +0 -0
  119. package/lib/ocaml/belt_MutableQueue.cmti +0 -0
  120. package/lib/ocaml/belt_MutableQueue.ml +222 -0
  121. package/lib/ocaml/belt_MutableQueue.mli +116 -0
  122. package/lib/ocaml/belt_MutableSet.cmi +0 -0
  123. package/lib/ocaml/belt_MutableSet.cmt +0 -0
  124. package/lib/ocaml/belt_MutableSet.cmti +0 -0
  125. package/lib/ocaml/belt_MutableSet.ml +371 -0
  126. package/lib/ocaml/belt_MutableSet.mli +617 -0
  127. package/lib/ocaml/belt_MutableSetInt.cmi +0 -0
  128. package/lib/ocaml/belt_MutableSetInt.cmt +0 -0
  129. package/lib/ocaml/belt_MutableSetInt.cmti +0 -0
  130. package/lib/ocaml/belt_MutableSetInt.ml +342 -0
  131. package/lib/ocaml/belt_MutableSetInt.mli +124 -0
  132. package/lib/ocaml/belt_MutableSetString.cmi +0 -0
  133. package/lib/ocaml/belt_MutableSetString.cmt +0 -0
  134. package/lib/ocaml/belt_MutableSetString.cmti +0 -0
  135. package/lib/ocaml/belt_MutableSetString.ml +342 -0
  136. package/lib/ocaml/belt_MutableSetString.mli +124 -0
  137. package/lib/ocaml/belt_MutableStack.cmi +0 -0
  138. package/lib/ocaml/belt_MutableStack.cmt +0 -0
  139. package/lib/ocaml/belt_MutableStack.cmti +0 -0
  140. package/lib/ocaml/belt_MutableStack.ml +106 -0
  141. package/lib/ocaml/belt_MutableStack.mli +63 -0
  142. package/lib/ocaml/belt_Option.cmi +0 -0
  143. package/lib/ocaml/belt_Option.cmt +0 -0
  144. package/lib/ocaml/belt_Option.cmti +0 -0
  145. package/lib/ocaml/belt_Option.ml +93 -0
  146. package/lib/ocaml/belt_Option.mli +270 -0
  147. package/lib/ocaml/belt_Range.cmi +0 -0
  148. package/lib/ocaml/belt_Range.cmt +0 -0
  149. package/lib/ocaml/belt_Range.cmti +0 -0
  150. package/lib/ocaml/belt_Range.ml +76 -0
  151. package/lib/ocaml/belt_Range.mli +114 -0
  152. package/lib/ocaml/belt_Result.cmi +0 -0
  153. package/lib/ocaml/belt_Result.cmt +0 -0
  154. package/lib/ocaml/belt_Result.cmti +0 -0
  155. package/lib/ocaml/belt_Result.ml +75 -0
  156. package/lib/ocaml/belt_Result.mli +205 -0
  157. package/lib/ocaml/belt_Set.cmi +0 -0
  158. package/lib/ocaml/belt_Set.cmt +0 -0
  159. package/lib/ocaml/belt_Set.cmti +0 -0
  160. package/lib/ocaml/belt_Set.cppo.ml +205 -0
  161. package/lib/ocaml/belt_Set.cppo.mli +153 -0
  162. package/lib/ocaml/belt_Set.ml +164 -0
  163. package/lib/ocaml/belt_Set.mli +523 -0
  164. package/lib/ocaml/belt_SetDict.cmi +0 -0
  165. package/lib/ocaml/belt_SetDict.cmt +0 -0
  166. package/lib/ocaml/belt_SetDict.cmti +0 -0
  167. package/lib/ocaml/belt_SetDict.ml +237 -0
  168. package/lib/ocaml/belt_SetDict.mli +567 -0
  169. package/lib/ocaml/belt_SetInt.cmi +0 -0
  170. package/lib/ocaml/belt_SetInt.cmt +0 -0
  171. package/lib/ocaml/belt_SetInt.cmti +0 -0
  172. package/lib/ocaml/belt_SetInt.ml +201 -0
  173. package/lib/ocaml/belt_SetInt.mli +151 -0
  174. package/lib/ocaml/belt_SetString.cmi +0 -0
  175. package/lib/ocaml/belt_SetString.cmt +0 -0
  176. package/lib/ocaml/belt_SetString.cmti +0 -0
  177. package/lib/ocaml/belt_SetString.ml +201 -0
  178. package/lib/ocaml/belt_SetString.mli +151 -0
  179. package/lib/ocaml/belt_SortArray.cmi +0 -0
  180. package/lib/ocaml/belt_SortArray.cmt +0 -0
  181. package/lib/ocaml/belt_SortArray.cmti +0 -0
  182. package/lib/ocaml/belt_SortArray.ml +322 -0
  183. package/lib/ocaml/belt_SortArray.mli +146 -0
  184. package/lib/ocaml/belt_SortArrayInt.cmi +0 -0
  185. package/lib/ocaml/belt_SortArrayInt.cmt +0 -0
  186. package/lib/ocaml/belt_SortArrayInt.cmti +0 -0
  187. package/lib/ocaml/belt_SortArrayInt.ml +263 -0
  188. package/lib/ocaml/belt_SortArrayInt.mli +93 -0
  189. package/lib/ocaml/belt_SortArrayString.cmi +0 -0
  190. package/lib/ocaml/belt_SortArrayString.cmt +0 -0
  191. package/lib/ocaml/belt_SortArrayString.cmti +0 -0
  192. package/lib/ocaml/belt_SortArrayString.ml +263 -0
  193. package/lib/ocaml/belt_SortArrayString.mli +93 -0
  194. package/lib/ocaml/belt_internalAVLset.cmt +0 -0
  195. package/lib/ocaml/belt_internalAVLset.cmti +0 -0
  196. package/lib/ocaml/belt_internalAVLset.ml +665 -0
  197. package/lib/ocaml/belt_internalAVLset.mli +124 -0
  198. package/lib/ocaml/belt_internalAVLtree.cmt +0 -0
  199. package/lib/ocaml/belt_internalAVLtree.cmti +0 -0
  200. package/lib/ocaml/belt_internalAVLtree.ml +762 -0
  201. package/lib/ocaml/belt_internalAVLtree.mli +215 -0
  202. package/lib/ocaml/belt_internalBuckets.cmt +0 -0
  203. package/lib/ocaml/belt_internalBuckets.cmti +0 -0
  204. package/lib/ocaml/belt_internalBuckets.ml +218 -0
  205. package/lib/ocaml/belt_internalBuckets.mli +57 -0
  206. package/lib/ocaml/belt_internalBucketsType.cmt +0 -0
  207. package/lib/ocaml/belt_internalBucketsType.cmti +0 -0
  208. package/lib/ocaml/belt_internalBucketsType.ml +59 -0
  209. package/lib/ocaml/belt_internalBucketsType.mli +46 -0
  210. package/lib/ocaml/belt_internalMapInt.cmt +0 -0
  211. package/lib/ocaml/belt_internalMapInt.ml +227 -0
  212. package/lib/ocaml/belt_internalMapString.cmt +0 -0
  213. package/lib/ocaml/belt_internalMapString.ml +227 -0
  214. package/lib/ocaml/belt_internalSetBuckets.cmt +0 -0
  215. package/lib/ocaml/belt_internalSetBuckets.cmti +0 -0
  216. package/lib/ocaml/belt_internalSetBuckets.ml +157 -0
  217. package/lib/ocaml/belt_internalSetBuckets.mli +47 -0
  218. package/lib/ocaml/belt_internalSetInt.cmt +0 -0
  219. package/lib/ocaml/belt_internalSetInt.ml +129 -0
  220. package/lib/ocaml/belt_internalSetString.cmt +0 -0
  221. package/lib/ocaml/belt_internalSetString.ml +129 -0
  222. package/lib/ocaml/belt_internals.cmti +0 -0
  223. package/lib/ocaml/belt_internals.mli +79 -0
  224. package/lib/ocaml/buffer.cmi +0 -0
  225. package/lib/ocaml/buffer.cmt +0 -0
  226. package/lib/ocaml/buffer.cmti +0 -0
  227. package/lib/ocaml/buffer.ml +250 -0
  228. package/lib/ocaml/buffer.mli +149 -0
  229. package/lib/ocaml/bytes.cmi +0 -0
  230. package/lib/ocaml/bytes.cmt +0 -0
  231. package/lib/ocaml/bytes.cmti +0 -0
  232. package/lib/ocaml/bytes.ml +431 -0
  233. package/lib/ocaml/bytes.mli +430 -0
  234. package/lib/ocaml/bytesLabels.cmi +0 -0
  235. package/lib/ocaml/bytesLabels.cmt +0 -0
  236. package/lib/ocaml/bytesLabels.cmti +0 -0
  237. package/lib/ocaml/bytesLabels.ml +428 -0
  238. package/lib/ocaml/bytesLabels.mli +276 -0
  239. package/lib/ocaml/callback.cmi +0 -0
  240. package/lib/ocaml/callback.cmt +0 -0
  241. package/lib/ocaml/callback.cmti +0 -0
  242. package/lib/ocaml/callback.ml +20 -0
  243. package/lib/ocaml/callback.mli +34 -0
  244. package/lib/ocaml/camlinternalLazy.cmi +0 -0
  245. package/lib/ocaml/camlinternalLazy.cmt +0 -0
  246. package/lib/ocaml/camlinternalLazy.cmti +0 -0
  247. package/lib/ocaml/camlinternalLazy.ml +89 -0
  248. package/lib/ocaml/camlinternalLazy.mli +27 -0
  249. package/lib/ocaml/camlinternalMod.cmi +0 -0
  250. package/lib/ocaml/camlinternalMod.cmt +0 -0
  251. package/lib/ocaml/camlinternalMod.cmti +0 -0
  252. package/lib/ocaml/camlinternalMod.ml +21 -0
  253. package/lib/ocaml/camlinternalMod.mli +25 -0
  254. package/lib/ocaml/char.cmi +0 -0
  255. package/lib/ocaml/char.cmt +0 -0
  256. package/lib/ocaml/char.cmti +0 -0
  257. package/lib/ocaml/char.ml +76 -0
  258. package/lib/ocaml/char.mli +72 -0
  259. package/lib/ocaml/complex.cmi +0 -0
  260. package/lib/ocaml/complex.cmt +0 -0
  261. package/lib/ocaml/complex.cmti +0 -0
  262. package/lib/ocaml/complex.ml +87 -0
  263. package/lib/ocaml/complex.mli +86 -0
  264. package/lib/ocaml/digest.cmi +0 -0
  265. package/lib/ocaml/digest.cmt +0 -0
  266. package/lib/ocaml/digest.cmti +0 -0
  267. package/lib/ocaml/digest.ml +66 -0
  268. package/lib/ocaml/digest.mli +68 -0
  269. package/lib/ocaml/dom.cmi +0 -0
  270. package/lib/ocaml/dom.cmt +0 -0
  271. package/lib/ocaml/dom.ml +296 -0
  272. package/lib/ocaml/dom_storage.cmi +0 -0
  273. package/lib/ocaml/dom_storage.cmt +0 -0
  274. package/lib/ocaml/dom_storage.ml +22 -0
  275. package/lib/ocaml/dom_storage2.cmi +0 -0
  276. package/lib/ocaml/dom_storage2.cmt +0 -0
  277. package/lib/ocaml/dom_storage2.ml +11 -0
  278. package/lib/ocaml/filename.cmi +0 -0
  279. package/lib/ocaml/filename.cmt +0 -0
  280. package/lib/ocaml/filename.cmti +0 -0
  281. package/lib/ocaml/filename.ml +233 -0
  282. package/lib/ocaml/filename.mli +134 -0
  283. package/lib/ocaml/genlex.cmi +0 -0
  284. package/lib/ocaml/genlex.cmt +0 -0
  285. package/lib/ocaml/genlex.cmti +0 -0
  286. package/lib/ocaml/genlex.ml +201 -0
  287. package/lib/ocaml/genlex.mli +73 -0
  288. package/lib/ocaml/hashmap.cppo.ml +214 -0
  289. package/lib/ocaml/hashmap.cppo.mli +54 -0
  290. package/lib/ocaml/hashset.cppo.ml +165 -0
  291. package/lib/ocaml/hashset.cppo.mli +77 -0
  292. package/lib/ocaml/hashtbl.cmi +0 -0
  293. package/lib/ocaml/hashtbl.cmt +0 -0
  294. package/lib/ocaml/hashtbl.cmti +0 -0
  295. package/lib/ocaml/hashtbl.ml +541 -0
  296. package/lib/ocaml/hashtbl.mli +411 -0
  297. package/lib/ocaml/hashtblLabels.cmi +0 -0
  298. package/lib/ocaml/hashtblLabels.cmt +0 -0
  299. package/lib/ocaml/hashtblLabels.ml +130 -0
  300. package/lib/ocaml/int32.cmi +0 -0
  301. package/lib/ocaml/int32.cmt +0 -0
  302. package/lib/ocaml/int32.cmti +0 -0
  303. package/lib/ocaml/int32.ml +64 -0
  304. package/lib/ocaml/int32.mli +186 -0
  305. package/lib/ocaml/int64.cmi +0 -0
  306. package/lib/ocaml/int64.cmt +0 -0
  307. package/lib/ocaml/int64.cmti +0 -0
  308. package/lib/ocaml/int64.ml +72 -0
  309. package/lib/ocaml/int64.mli +197 -0
  310. package/lib/ocaml/internal_map.cppo.ml +230 -0
  311. package/lib/ocaml/internal_set.cppo.ml +134 -0
  312. package/lib/ocaml/js.cmi +0 -0
  313. package/lib/ocaml/js.cmt +0 -0
  314. package/lib/ocaml/js.ml +316 -0
  315. package/lib/ocaml/js_OO.cmi +0 -0
  316. package/lib/ocaml/js_OO.cmt +0 -0
  317. package/lib/ocaml/js_OO.ml +180 -0
  318. package/lib/ocaml/js_array.cmi +0 -0
  319. package/lib/ocaml/js_array.cmt +0 -0
  320. package/lib/ocaml/js_array.ml +970 -0
  321. package/lib/ocaml/js_array2.cmi +0 -0
  322. package/lib/ocaml/js_array2.cmt +0 -0
  323. package/lib/ocaml/js_array2.ml +1065 -0
  324. package/lib/ocaml/js_bigint.cmi +0 -0
  325. package/lib/ocaml/js_bigint.cmt +0 -0
  326. package/lib/ocaml/js_bigint.ml +3 -0
  327. package/lib/ocaml/js_cast.cmi +0 -0
  328. package/lib/ocaml/js_cast.cmt +0 -0
  329. package/lib/ocaml/js_cast.cmti +0 -0
  330. package/lib/ocaml/js_cast.ml +29 -0
  331. package/lib/ocaml/js_cast.mli +45 -0
  332. package/lib/ocaml/js_console.cmi +0 -0
  333. package/lib/ocaml/js_console.cmt +0 -0
  334. package/lib/ocaml/js_console.ml +51 -0
  335. package/lib/ocaml/js_date.cmi +0 -0
  336. package/lib/ocaml/js_date.cmt +0 -0
  337. package/lib/ocaml/js_date.ml +1263 -0
  338. package/lib/ocaml/js_dict.cmi +0 -0
  339. package/lib/ocaml/js_dict.cmt +0 -0
  340. package/lib/ocaml/js_dict.cmti +0 -0
  341. package/lib/ocaml/js_dict.ml +114 -0
  342. package/lib/ocaml/js_dict.mli +152 -0
  343. package/lib/ocaml/js_exn.cmi +0 -0
  344. package/lib/ocaml/js_exn.cmt +0 -0
  345. package/lib/ocaml/js_exn.cmti +0 -0
  346. package/lib/ocaml/js_exn.ml +102 -0
  347. package/lib/ocaml/js_exn.mli +79 -0
  348. package/lib/ocaml/js_float.cmi +0 -0
  349. package/lib/ocaml/js_float.cmt +0 -0
  350. package/lib/ocaml/js_float.ml +294 -0
  351. package/lib/ocaml/js_global.cmi +0 -0
  352. package/lib/ocaml/js_global.cmt +0 -0
  353. package/lib/ocaml/js_global.ml +185 -0
  354. package/lib/ocaml/js_int.cmi +0 -0
  355. package/lib/ocaml/js_int.cmt +0 -0
  356. package/lib/ocaml/js_int.ml +158 -0
  357. package/lib/ocaml/js_json.cmi +0 -0
  358. package/lib/ocaml/js_json.cmt +0 -0
  359. package/lib/ocaml/js_json.cmti +0 -0
  360. package/lib/ocaml/js_json.ml +195 -0
  361. package/lib/ocaml/js_json.mli +244 -0
  362. package/lib/ocaml/js_list.cmi +0 -0
  363. package/lib/ocaml/js_list.cmt +0 -0
  364. package/lib/ocaml/js_list.cmti +0 -0
  365. package/lib/ocaml/js_list.ml +174 -0
  366. package/lib/ocaml/js_list.mli +72 -0
  367. package/lib/ocaml/js_map.cmi +0 -0
  368. package/lib/ocaml/js_map.cmt +0 -0
  369. package/lib/ocaml/js_map.ml +3 -0
  370. package/lib/ocaml/js_mapperRt.cmi +0 -0
  371. package/lib/ocaml/js_mapperRt.cmt +0 -0
  372. package/lib/ocaml/js_mapperRt.cmti +0 -0
  373. package/lib/ocaml/js_mapperRt.ml +50 -0
  374. package/lib/ocaml/js_mapperRt.mli +44 -0
  375. package/lib/ocaml/js_math.cmi +0 -0
  376. package/lib/ocaml/js_math.cmt +0 -0
  377. package/lib/ocaml/js_math.ml +626 -0
  378. package/lib/ocaml/js_null.cmi +0 -0
  379. package/lib/ocaml/js_null.cmt +0 -0
  380. package/lib/ocaml/js_null.cmti +0 -0
  381. package/lib/ocaml/js_null.ml +57 -0
  382. package/lib/ocaml/js_null.mli +87 -0
  383. package/lib/ocaml/js_null_undefined.cmi +0 -0
  384. package/lib/ocaml/js_null_undefined.cmt +0 -0
  385. package/lib/ocaml/js_null_undefined.cmti +0 -0
  386. package/lib/ocaml/js_null_undefined.ml +50 -0
  387. package/lib/ocaml/js_null_undefined.mli +85 -0
  388. package/lib/ocaml/js_obj.cmi +0 -0
  389. package/lib/ocaml/js_obj.cmt +0 -0
  390. package/lib/ocaml/js_obj.ml +100 -0
  391. package/lib/ocaml/js_option.cmi +0 -0
  392. package/lib/ocaml/js_option.cmt +0 -0
  393. package/lib/ocaml/js_option.cmti +0 -0
  394. package/lib/ocaml/js_option.ml +203 -0
  395. package/lib/ocaml/js_option.mli +52 -0
  396. package/lib/ocaml/js_promise.cmi +0 -0
  397. package/lib/ocaml/js_promise.cmt +0 -0
  398. package/lib/ocaml/js_promise.ml +100 -0
  399. package/lib/ocaml/js_promise2.cmi +0 -0
  400. package/lib/ocaml/js_promise2.cmt +0 -0
  401. package/lib/ocaml/js_promise2.res +58 -0
  402. package/lib/ocaml/js_re.cmi +0 -0
  403. package/lib/ocaml/js_re.cmt +0 -0
  404. package/lib/ocaml/js_re.ml +184 -0
  405. package/lib/ocaml/js_result.cmi +0 -0
  406. package/lib/ocaml/js_result.cmt +0 -0
  407. package/lib/ocaml/js_result.cmti +0 -0
  408. package/lib/ocaml/js_result.ml +28 -0
  409. package/lib/ocaml/js_result.mli +28 -0
  410. package/lib/ocaml/js_set.cmi +0 -0
  411. package/lib/ocaml/js_set.cmt +0 -0
  412. package/lib/ocaml/js_set.ml +3 -0
  413. package/lib/ocaml/js_string.cmi +0 -0
  414. package/lib/ocaml/js_string.cmt +0 -0
  415. package/lib/ocaml/js_string.ml +914 -0
  416. package/lib/ocaml/js_string2.cmi +0 -0
  417. package/lib/ocaml/js_string2.cmt +0 -0
  418. package/lib/ocaml/js_string2.ml +912 -0
  419. package/lib/ocaml/js_typed_array.cmi +0 -0
  420. package/lib/ocaml/js_typed_array.cmt +0 -0
  421. package/lib/ocaml/js_typed_array.cppo.ml +429 -0
  422. package/lib/ocaml/js_typed_array.ml +1405 -0
  423. package/lib/ocaml/js_typed_array2.cmi +0 -0
  424. package/lib/ocaml/js_typed_array2.cmt +0 -0
  425. package/lib/ocaml/js_typed_array2.cppo.ml +296 -0
  426. package/lib/ocaml/js_typed_array2.ml +1269 -0
  427. package/lib/ocaml/js_types.cmi +0 -0
  428. package/lib/ocaml/js_types.cmt +0 -0
  429. package/lib/ocaml/js_types.cmti +0 -0
  430. package/lib/ocaml/js_types.ml +118 -0
  431. package/lib/ocaml/js_types.mli +78 -0
  432. package/lib/ocaml/js_undefined.cmi +0 -0
  433. package/lib/ocaml/js_undefined.cmt +0 -0
  434. package/lib/ocaml/js_undefined.cmti +0 -0
  435. package/lib/ocaml/js_undefined.ml +59 -0
  436. package/lib/ocaml/js_undefined.mli +92 -0
  437. package/lib/ocaml/js_vector.cmi +0 -0
  438. package/lib/ocaml/js_vector.cmt +0 -0
  439. package/lib/ocaml/js_vector.cmti +0 -0
  440. package/lib/ocaml/js_vector.ml +143 -0
  441. package/lib/ocaml/js_vector.mli +92 -0
  442. package/lib/ocaml/js_weakmap.cmi +0 -0
  443. package/lib/ocaml/js_weakmap.cmt +0 -0
  444. package/lib/ocaml/js_weakmap.ml +3 -0
  445. package/lib/ocaml/js_weakset.cmi +0 -0
  446. package/lib/ocaml/js_weakset.cmt +0 -0
  447. package/lib/ocaml/js_weakset.ml +3 -0
  448. package/lib/ocaml/jsx.cmi +0 -0
  449. package/lib/ocaml/jsx.cmt +0 -0
  450. package/lib/ocaml/jsx.res +40 -0
  451. package/lib/ocaml/jsxDOM.cmi +0 -0
  452. package/lib/ocaml/jsxDOM.cmt +0 -0
  453. package/lib/ocaml/jsxDOM.res +620 -0
  454. package/lib/ocaml/jsxDOMStyle.cmi +0 -0
  455. package/lib/ocaml/jsxDOMStyle.cmt +0 -0
  456. package/lib/ocaml/jsxDOMStyle.ml +781 -0
  457. package/lib/ocaml/jsxEvent.cmi +0 -0
  458. package/lib/ocaml/jsxEvent.cmt +0 -0
  459. package/lib/ocaml/jsxEvent.ml +358 -0
  460. package/lib/ocaml/jsxPPXReactSupport.cmi +0 -0
  461. package/lib/ocaml/jsxPPXReactSupport.cmt +0 -0
  462. package/lib/ocaml/jsxPPXReactSupport.res +48 -0
  463. package/lib/ocaml/lazy.cmi +0 -0
  464. package/lib/ocaml/lazy.cmt +0 -0
  465. package/lib/ocaml/lazy.cmti +0 -0
  466. package/lib/ocaml/lazy.ml +70 -0
  467. package/lib/ocaml/lazy.mli +95 -0
  468. package/lib/ocaml/lexing.cmi +0 -0
  469. package/lib/ocaml/lexing.cmt +0 -0
  470. package/lib/ocaml/lexing.cmti +0 -0
  471. package/lib/ocaml/lexing.ml +230 -0
  472. package/lib/ocaml/lexing.mli +172 -0
  473. package/lib/ocaml/list.cmi +0 -0
  474. package/lib/ocaml/list.cmt +0 -0
  475. package/lib/ocaml/list.cmti +0 -0
  476. package/lib/ocaml/list.ml +485 -0
  477. package/lib/ocaml/list.mli +347 -0
  478. package/lib/ocaml/listLabels.cmi +0 -0
  479. package/lib/ocaml/listLabels.cmt +0 -0
  480. package/lib/ocaml/listLabels.cmti +0 -0
  481. package/lib/ocaml/listLabels.ml +485 -0
  482. package/lib/ocaml/listLabels.mli +353 -0
  483. package/lib/ocaml/map.cmi +0 -0
  484. package/lib/ocaml/map.cmt +0 -0
  485. package/lib/ocaml/map.cmti +0 -0
  486. package/lib/ocaml/map.cppo.ml +174 -0
  487. package/lib/ocaml/map.cppo.mli +191 -0
  488. package/lib/ocaml/map.ml +480 -0
  489. package/lib/ocaml/map.mli +315 -0
  490. package/lib/ocaml/mapLabels.cmi +0 -0
  491. package/lib/ocaml/mapLabels.cmt +0 -0
  492. package/lib/ocaml/mapLabels.ml +480 -0
  493. package/lib/ocaml/mapm.cppo.ml +177 -0
  494. package/lib/ocaml/mapm.cppo.mli +138 -0
  495. package/lib/ocaml/moreLabels.cmi +0 -0
  496. package/lib/ocaml/moreLabels.cmt +0 -0
  497. package/lib/ocaml/moreLabels.cmti +0 -0
  498. package/lib/ocaml/moreLabels.ml +22 -0
  499. package/lib/ocaml/moreLabels.mli +198 -0
  500. package/lib/ocaml/node.cmi +0 -0
  501. package/lib/ocaml/node.cmt +0 -0
  502. package/lib/ocaml/node.ml +84 -0
  503. package/lib/ocaml/node_buffer.cmi +0 -0
  504. package/lib/ocaml/node_buffer.cmt +0 -0
  505. package/lib/ocaml/node_buffer.ml +47 -0
  506. package/lib/ocaml/node_child_process.cmi +0 -0
  507. package/lib/ocaml/node_child_process.cmt +0 -0
  508. package/lib/ocaml/node_child_process.ml +50 -0
  509. package/lib/ocaml/node_fs.cmi +0 -0
  510. package/lib/ocaml/node_fs.cmt +0 -0
  511. package/lib/ocaml/node_fs.ml +153 -0
  512. package/lib/ocaml/node_module.cmi +0 -0
  513. package/lib/ocaml/node_module.cmt +0 -0
  514. package/lib/ocaml/node_module.ml +29 -0
  515. package/lib/ocaml/node_path.cmi +0 -0
  516. package/lib/ocaml/node_path.cmt +0 -0
  517. package/lib/ocaml/node_path.ml +71 -0
  518. package/lib/ocaml/node_process.cmi +0 -0
  519. package/lib/ocaml/node_process.cmt +0 -0
  520. package/lib/ocaml/node_process.cmti +0 -0
  521. package/lib/ocaml/node_process.ml +59 -0
  522. package/lib/ocaml/node_process.mli +48 -0
  523. package/lib/ocaml/obj.cmi +0 -0
  524. package/lib/ocaml/obj.cmt +0 -0
  525. package/lib/ocaml/obj.cmti +0 -0
  526. package/lib/ocaml/obj.ml +29 -0
  527. package/lib/ocaml/obj.mli +62 -0
  528. package/lib/ocaml/parsing.cmi +0 -0
  529. package/lib/ocaml/parsing.cmt +0 -0
  530. package/lib/ocaml/parsing.cmti +0 -0
  531. package/lib/ocaml/parsing.ml +212 -0
  532. package/lib/ocaml/parsing.mli +105 -0
  533. package/lib/ocaml/pervasives.cmi +0 -0
  534. package/lib/ocaml/pervasives.cmt +0 -0
  535. package/lib/ocaml/pervasives.cmti +0 -0
  536. package/lib/ocaml/pervasives.ml +297 -0
  537. package/lib/ocaml/pervasives.mli +771 -0
  538. package/lib/ocaml/printexc.cmi +0 -0
  539. package/lib/ocaml/printexc.cmt +0 -0
  540. package/lib/ocaml/printexc.cmti +0 -0
  541. package/lib/ocaml/printexc.ml +75 -0
  542. package/lib/ocaml/printexc.mli +57 -0
  543. package/lib/ocaml/queue.cmi +0 -0
  544. package/lib/ocaml/queue.cmt +0 -0
  545. package/lib/ocaml/queue.cmti +0 -0
  546. package/lib/ocaml/queue.ml +132 -0
  547. package/lib/ocaml/queue.mli +82 -0
  548. package/lib/ocaml/random.cmi +0 -0
  549. package/lib/ocaml/random.cmt +0 -0
  550. package/lib/ocaml/random.cmti +0 -0
  551. package/lib/ocaml/random.ml +273 -0
  552. package/lib/ocaml/random.mli +102 -0
  553. package/lib/ocaml/set.cmi +0 -0
  554. package/lib/ocaml/set.cmt +0 -0
  555. package/lib/ocaml/set.cmti +0 -0
  556. package/lib/ocaml/set.ml +526 -0
  557. package/lib/ocaml/set.mli +266 -0
  558. package/lib/ocaml/setLabels.cmi +0 -0
  559. package/lib/ocaml/setLabels.cmt +0 -0
  560. package/lib/ocaml/setLabels.ml +526 -0
  561. package/lib/ocaml/setm.cppo.ml +346 -0
  562. package/lib/ocaml/setm.cppo.mli +126 -0
  563. package/lib/ocaml/sort.cmi +0 -0
  564. package/lib/ocaml/sort.cmt +0 -0
  565. package/lib/ocaml/sort.cmti +0 -0
  566. package/lib/ocaml/sort.cppo.ml +267 -0
  567. package/lib/ocaml/sort.cppo.mli +96 -0
  568. package/lib/ocaml/sort.ml +99 -0
  569. package/lib/ocaml/sort.mli +44 -0
  570. package/lib/ocaml/stack.cmi +0 -0
  571. package/lib/ocaml/stack.cmt +0 -0
  572. package/lib/ocaml/stack.cmti +0 -0
  573. package/lib/ocaml/stack.ml +44 -0
  574. package/lib/ocaml/stack.mli +63 -0
  575. package/lib/ocaml/stdLabels.cmi +0 -0
  576. package/lib/ocaml/stdLabels.cmt +0 -0
  577. package/lib/ocaml/stdLabels.cmti +0 -0
  578. package/lib/ocaml/stdLabels.ml +24 -0
  579. package/lib/ocaml/stdLabels.mli +29 -0
  580. package/lib/ocaml/stream.cmi +0 -0
  581. package/lib/ocaml/stream.cmt +0 -0
  582. package/lib/ocaml/stream.cmti +0 -0
  583. package/lib/ocaml/stream.ml +213 -0
  584. package/lib/ocaml/stream.mli +108 -0
  585. package/lib/ocaml/string.cmi +0 -0
  586. package/lib/ocaml/string.cmt +0 -0
  587. package/lib/ocaml/string.cmti +0 -0
  588. package/lib/ocaml/string.ml +190 -0
  589. package/lib/ocaml/string.mli +286 -0
  590. package/lib/ocaml/stringLabels.cmi +0 -0
  591. package/lib/ocaml/stringLabels.cmt +0 -0
  592. package/lib/ocaml/stringLabels.cmti +0 -0
  593. package/lib/ocaml/stringLabels.ml +190 -0
  594. package/lib/ocaml/stringLabels.mli +241 -0
  595. package/lib/ocaml/sys.cmi +0 -0
  596. package/lib/ocaml/sys.cmt +0 -0
  597. package/lib/ocaml/sys.cmti +0 -0
  598. package/lib/ocaml/sys.ml +135 -0
  599. package/lib/ocaml/sys.mli +333 -0
  600. package/lib/ocaml/uchar.cmi +0 -0
  601. package/lib/ocaml/uchar.cmt +0 -0
  602. package/lib/ocaml/uchar.cmti +0 -0
  603. package/lib/ocaml/uchar.ml +58 -0
  604. package/lib/ocaml/uchar.mli +98 -0
  605. package/linux/bsb_helper.exe +0 -0
  606. package/linux/bsc.exe +0 -0
  607. package/linux/ninja.exe +0 -0
  608. package/linux/rescript.exe +0 -0
  609. package/ninja.COPYING +202 -0
  610. package/package.json +1 -1
  611. package/vendor/ninja.tar.gz +0 -0
  612. package/win32/bsb_helper.exe +0 -0
  613. package/win32/bsc.exe +0 -0
  614. package/win32/ninja.exe +0 -0
  615. package/win32/refmt.exe +0 -0
  616. package/win32/rescript.exe +0 -0
@@ -0,0 +1,149 @@
1
+ (**************************************************************************)
2
+ (* *)
3
+ (* OCaml *)
4
+ (* *)
5
+ (* Pierre Weis and Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
6
+ (* *)
7
+ (* Copyright 1999 Institut National de Recherche en Informatique et *)
8
+ (* en Automatique. *)
9
+ (* *)
10
+ (* All rights reserved. This file is distributed under the terms of *)
11
+ (* the GNU Lesser General Public License version 2.1, with the *)
12
+ (* special exception on linking described in the file LICENSE. *)
13
+ (* *)
14
+ (**************************************************************************)
15
+
16
+ (** Extensible buffers.
17
+
18
+ This module implements buffers that automatically expand
19
+ as necessary. It provides accumulative concatenation of strings
20
+ in quasi-linear time (instead of quadratic time when strings are
21
+ concatenated pairwise).
22
+ *)
23
+
24
+ type t
25
+ (** The abstract type of buffers. *)
26
+
27
+ val create : int -> t
28
+ (** [create n] returns a fresh buffer, initially empty.
29
+ The [n] parameter is the initial size of the internal byte sequence
30
+ that holds the buffer contents. That byte sequence is automatically
31
+ reallocated when more than [n] characters are stored in the buffer,
32
+ but shrinks back to [n] characters when [reset] is called.
33
+ For best performance, [n] should be of the same order of magnitude
34
+ as the number of characters that are expected to be stored in
35
+ the buffer (for instance, 80 for a buffer that holds one output
36
+ line). Nothing bad will happen if the buffer grows beyond that
37
+ limit, however. In doubt, take [n = 16] for instance.
38
+ If [n] is not between 1 and {!Sys.max_string_length}, it will
39
+ be clipped to that interval. *)
40
+
41
+ val contents : t -> string
42
+ (** Return a copy of the current contents of the buffer.
43
+ The buffer itself is unchanged. *)
44
+
45
+ val to_bytes : t -> bytes
46
+ (** Return a copy of the current contents of the buffer.
47
+ The buffer itself is unchanged.
48
+ @since 4.02 *)
49
+
50
+ val sub : t -> int -> int -> string
51
+ (** [Buffer.sub b off len] returns a copy of [len] bytes from the
52
+ current contents of the buffer [b], starting at offset [off].
53
+
54
+ Raise [Invalid_argument] if [srcoff] and [len] do not designate a valid
55
+ range of [b]. *)
56
+
57
+ val blit : t -> int -> bytes -> int -> int -> unit
58
+ (** [Buffer.blit src srcoff dst dstoff len] copies [len] characters from
59
+ the current contents of the buffer [src], starting at offset [srcoff]
60
+ to [dst], starting at character [dstoff].
61
+
62
+ Raise [Invalid_argument] if [srcoff] and [len] do not designate a valid
63
+ range of [src], or if [dstoff] and [len] do not designate a valid
64
+ range of [dst].
65
+ @since 3.11.2
66
+ *)
67
+
68
+ val nth : t -> int -> char
69
+ (** Get the n-th character of the buffer. Raise [Invalid_argument] if
70
+ index out of bounds *)
71
+
72
+ val length : t -> int
73
+ (** Return the number of characters currently contained in the buffer. *)
74
+
75
+ val clear : t -> unit
76
+ (** Empty the buffer. *)
77
+
78
+ val reset : t -> unit
79
+ (** Empty the buffer and deallocate the internal byte sequence holding the
80
+ buffer contents, replacing it with the initial internal byte sequence
81
+ of length [n] that was allocated by {!Buffer.create} [n].
82
+ For long-lived buffers that may have grown a lot, [reset] allows
83
+ faster reclamation of the space used by the buffer. *)
84
+
85
+ val add_char : t -> char -> unit
86
+ (** [add_char b c] appends the character [c] at the end of buffer [b]. *)
87
+
88
+ val add_utf_8_uchar : t -> Uchar.t -> unit
89
+ (** [add_utf_8_uchar b u] appends the {{:https://tools.ietf.org/html/rfc3629}
90
+ UTF-8} encoding of [u] at the end of buffer [b].
91
+
92
+ @since 4.06.0 *)
93
+
94
+ val add_utf_16le_uchar : t -> Uchar.t -> unit
95
+ (** [add_utf_16le_uchar b u] appends the
96
+ {{:https://tools.ietf.org/html/rfc2781}UTF-16LE} encoding of [u]
97
+ at the end of buffer [b].
98
+
99
+ @since 4.06.0 *)
100
+
101
+ val add_utf_16be_uchar : t -> Uchar.t -> unit
102
+ (** [add_utf_16be_uchar b u] appends the
103
+ {{:https://tools.ietf.org/html/rfc2781}UTF-16BE} encoding of [u]
104
+ at the end of buffer [b].
105
+
106
+ @since 4.06.0 *)
107
+
108
+ val add_string : t -> string -> unit
109
+ (** [add_string b s] appends the string [s] at the end of buffer [b]. *)
110
+
111
+ val add_bytes : t -> bytes -> unit
112
+ (** [add_bytes b s] appends the byte sequence [s] at the end of buffer [b].
113
+ @since 4.02 *)
114
+
115
+ val add_substring : t -> string -> int -> int -> unit
116
+ (** [add_substring b s ofs len] takes [len] characters from offset
117
+ [ofs] in string [s] and appends them at the end of buffer [b]. *)
118
+
119
+ val add_subbytes : t -> bytes -> int -> int -> unit
120
+ (** [add_subbytes b s ofs len] takes [len] characters from offset
121
+ [ofs] in byte sequence [s] and appends them at the end of buffer [b].
122
+ @since 4.02 *)
123
+
124
+ val add_substitute : t -> (string -> string) -> string -> unit
125
+ (** [add_substitute b f s] appends the string pattern [s] at the end
126
+ of buffer [b] with substitution.
127
+ The substitution process looks for variables into
128
+ the pattern and substitutes each variable name by its value, as
129
+ obtained by applying the mapping [f] to the variable name. Inside the
130
+ string pattern, a variable name immediately follows a non-escaped
131
+ [$] character and is one of the following:
132
+ - a non empty sequence of alphanumeric or [_] characters,
133
+ - an arbitrary sequence of characters enclosed by a pair of
134
+ matching parentheses or curly brackets.
135
+ An escaped [$] character is a [$] that immediately follows a backslash
136
+ character; it then stands for a plain [$].
137
+ Raise [Not_found] if the closing character of a parenthesized variable
138
+ cannot be found. *)
139
+
140
+ val add_buffer : t -> t -> unit
141
+ (** [add_buffer b1 b2] appends the current contents of buffer [b2]
142
+ at the end of buffer [b1]. [b2] is not modified. *)
143
+
144
+
145
+ val truncate : t -> int -> unit
146
+ (** [truncate b len] truncates the length of [b] to [len]
147
+ Note: the internal byte sequence is not shortened.
148
+ Raise [Invalid_argument] if [len < 0] or [len > length b].
149
+ @since 4.05.0 *)
Binary file
Binary file
Binary file
@@ -0,0 +1,431 @@
1
+ (**************************************************************************)
2
+ (* *)
3
+ (* OCaml *)
4
+ (* *)
5
+ (* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
6
+ (* *)
7
+ (* Copyright 1996 Institut National de Recherche en Informatique et *)
8
+ (* en Automatique. *)
9
+ (* *)
10
+ (* All rights reserved. This file is distributed under the terms of *)
11
+ (* the GNU Lesser General Public License version 2.1, with the *)
12
+ (* special exception on linking described in the file LICENSE. *)
13
+ (* *)
14
+ (**************************************************************************)
15
+
16
+ (* Byte sequence operations *)
17
+
18
+ (* WARNING: Some functions in this file are duplicated in string.ml for
19
+ efficiency reasons. When you modify the one in this file you need to
20
+ modify its duplicate in string.ml.
21
+ These functions have a "duplicated" comment above their definition.
22
+ *)
23
+
24
+
25
+
26
+ external of_small_int_array :
27
+ (_ [@bs.as {json|null|json}] ) ->
28
+ int array -> string =
29
+ "String.fromCharCode.apply"
30
+ [@@bs.val]
31
+
32
+ external (.!()) : string -> int -> char = "%string_unsafe_get"
33
+ external length : bytes -> int = "%bytes_length"
34
+ external%private string_length : string -> int = "%string_length"
35
+ external get : bytes -> int -> char = "%bytes_safe_get"
36
+ external set : bytes -> int -> char -> unit = "%bytes_safe_set"
37
+ external create : int -> bytes = "?create_bytes"
38
+
39
+ external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
40
+ external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
41
+ external (.![]) : bytes -> int -> char = "%bytes_unsafe_get"
42
+ external (.![]<-) : bytes -> int -> char -> unit = "%bytes_unsafe_set"
43
+ external new_uninitialized : int -> bytes = "Array" [@@bs.new]
44
+ external to_int_array : bytes -> int array = "%identity"
45
+
46
+ let unsafe_fill : bytes -> int -> int -> char -> unit
47
+ = fun (s : bytes) i l (c : char) ->
48
+ if l > 0 then
49
+ for k = i to l + i - 1 do
50
+ s.![k] <- c
51
+ done
52
+
53
+
54
+
55
+
56
+ (** Same as {!Array.prototype.copyWithin} *)
57
+ let copyWithin (s1 : bytes) i1 i2 len =
58
+ if i1 < i2 then (* nop for i1 = i2 *)
59
+ let range_a = length s1 - i2 - 1 in
60
+ let range_b = len - 1 in
61
+ let range = if range_a > range_b then range_b else range_a in
62
+ for j = range downto 0 do
63
+ s1.![i2 + j] <- s1.![i1 + j]
64
+ done
65
+ else if i1 > i2 then
66
+ let range_a = length s1 - i1 - 1 in
67
+ let range_b = len - 1 in
68
+ let range = if range_a > range_b then range_b else range_a in
69
+ for k = 0 to range do
70
+ s1.![i2 + k] <- s1.![i1 + k]
71
+ done
72
+
73
+ (* TODO: when the compiler could optimize small function calls,
74
+ use high order functions instead
75
+ *)
76
+ let unsafe_blit (s1:bytes) i1 (s2:bytes) i2 len =
77
+ if len > 0 then
78
+ if s1 == s2 then
79
+ copyWithin s1 i1 i2 len
80
+ else
81
+ let off1 = length s1 - i1 in
82
+ if len <= off1 then
83
+ for i = 0 to len - 1 do
84
+ s2.![i2 + i] <- s1.![i1 + i]
85
+ done
86
+ else
87
+ begin
88
+ for i = 0 to off1 - 1 do
89
+ s2.![i2 + i] <- s1.![i1 + i]
90
+ done;
91
+ for i = off1 to len - 1 do
92
+ s2.![i2 + i] <- '\000'
93
+ done
94
+ end
95
+
96
+ let unsafe_blit_string (s1 : string) i1 (s2 : bytes) i2 (len : int ) =
97
+ if len > 0 then
98
+ let off1 = string_length s1 - i1 in
99
+ if len <= off1 then
100
+ for i = 0 to len - 1 do
101
+ s2.![i2 + i] <- s1.!(i1 + i)
102
+ done
103
+ else
104
+ begin
105
+ for i = 0 to off1 - 1 do
106
+ s2.![i2 + i] <- s1.!(i1 + i)
107
+ done;
108
+ for i = off1 to len - 1 do
109
+ s2.![i2 + i] <- '\000'
110
+ done
111
+ end
112
+ let string_of_large_bytes (bytes : bytes) i len =
113
+ let s = ref "" in
114
+ let s_len = ref len in
115
+ let seg = 1024 in
116
+ if i = 0 && len <= 4 * seg && len = length bytes then
117
+ of_small_int_array (to_int_array bytes)
118
+ else
119
+ begin
120
+ let offset = ref 0 in
121
+ while s_len.contents > 0 do
122
+ let next = if s_len.contents < 1024 then s_len.contents else seg in
123
+ let tmp_bytes = new_uninitialized next in
124
+ for k = 0 to next - 1 do
125
+ tmp_bytes.![k] <- bytes.![k + offset.contents]
126
+ done;
127
+ s.contents <- s.contents ^ of_small_int_array (to_int_array tmp_bytes);
128
+ s_len.contents <- s_len.contents - next ;
129
+ offset.contents <- offset.contents + next;
130
+ done;
131
+ s.contents
132
+ end
133
+
134
+
135
+ let make n c =
136
+ let s = create n in
137
+ unsafe_fill s 0 n c;
138
+ s
139
+
140
+ let init n f =
141
+ let s = create n in
142
+ for i = 0 to n - 1 do
143
+ unsafe_set s i (f i)
144
+ done;
145
+ s
146
+
147
+ let empty = create 0
148
+
149
+ let copy s =
150
+ let len = length s in
151
+ let r = create len in
152
+ unsafe_blit s 0 r 0 len;
153
+ r
154
+
155
+ let to_string (a : bytes) : string =
156
+ string_of_large_bytes a 0 (length a)
157
+
158
+ let unsafe_to_string = to_string
159
+
160
+ (** checkout [Bytes.empty] -- to be inlined? *)
161
+ let of_string (s : string) =
162
+ let len = string_length s in
163
+ let res = new_uninitialized len in
164
+ for i = 0 to len - 1 do
165
+ res.![i] <- s.!(i)
166
+ (* Note that when get a char and convert it to int immedately, should be optimized
167
+ should be [s.charCodeAt[i]]
168
+ *)
169
+ done;
170
+ res
171
+
172
+ let unsafe_of_string = of_string
173
+
174
+ let sub s ofs len =
175
+ if ofs < 0 || len < 0 || ofs > length s - len
176
+ then invalid_arg "String.sub / Bytes.sub"
177
+ else begin
178
+ let r = create len in
179
+ unsafe_blit s ofs r 0 len;
180
+ r
181
+ end
182
+
183
+ let sub_string b ofs len = unsafe_to_string (sub b ofs len)
184
+
185
+ (* addition with an overflow check *)
186
+ let (++) a b =
187
+ let c = a + b in
188
+ match a < 0, b < 0, c < 0 with
189
+ | true , true , false
190
+ | false, false, true -> invalid_arg "Bytes.extend" (* overflow *)
191
+ | _ -> c
192
+
193
+ let extend s left right =
194
+ let len = length s ++ left ++ right in
195
+ let r = create len in
196
+ let (srcoff, dstoff) = if left < 0 then -left, 0 else 0, left in
197
+ let cpylen = min (length s - srcoff) (len - dstoff) in
198
+ if cpylen > 0 then unsafe_blit s srcoff r dstoff cpylen;
199
+ r
200
+
201
+ let fill s ofs len c =
202
+ if ofs < 0 || len < 0 || ofs > length s - len
203
+ then invalid_arg "String.fill / Bytes.fill"
204
+ else unsafe_fill s ofs len c
205
+
206
+ let blit s1 ofs1 s2 ofs2 len =
207
+ if len < 0 || ofs1 < 0 || ofs1 > length s1 - len
208
+ || ofs2 < 0 || ofs2 > length s2 - len
209
+ then invalid_arg "Bytes.blit"
210
+ else unsafe_blit s1 ofs1 s2 ofs2 len
211
+
212
+ let blit_string s1 ofs1 s2 ofs2 len =
213
+ if len < 0 || ofs1 < 0 || ofs1 > string_length s1 - len
214
+ || ofs2 < 0 || ofs2 > length s2 - len
215
+ then invalid_arg "String.blit / Bytes.blit_string"
216
+ else unsafe_blit_string s1 ofs1 s2 ofs2 len
217
+
218
+ (* duplicated in string.ml *)
219
+ let iter f a =
220
+ for i = 0 to length a - 1 do f(unsafe_get a i) done
221
+
222
+ (* duplicated in string.ml *)
223
+ let iteri f a =
224
+ for i = 0 to length a - 1 do f i (unsafe_get a i) done
225
+
226
+ let ensure_ge (x:int) y = if x >= y then x else invalid_arg "Bytes.concat"
227
+
228
+ let rec sum_lengths acc seplen = function
229
+ | [] -> acc
230
+ | hd :: [] -> length hd + acc
231
+ | hd :: tl -> sum_lengths (ensure_ge (length hd + seplen + acc) acc) seplen tl
232
+
233
+ let rec unsafe_blits dst pos sep seplen = function
234
+ [] -> dst
235
+ | hd :: [] ->
236
+ unsafe_blit hd 0 dst pos (length hd); dst
237
+ | hd :: tl ->
238
+ unsafe_blit hd 0 dst pos (length hd);
239
+ unsafe_blit sep 0 dst (pos + length hd) seplen;
240
+ unsafe_blits dst (pos + length hd + seplen) sep seplen tl
241
+
242
+ let concat sep = function
243
+ [] -> empty
244
+ | l -> let seplen = length sep in
245
+ unsafe_blits
246
+ (create (sum_lengths 0 seplen l))
247
+ 0 sep seplen l
248
+
249
+ let cat s1 s2 =
250
+ let l1 = length s1 in
251
+ let l2 = length s2 in
252
+ let r = create (l1 + l2) in
253
+ unsafe_blit s1 0 r 0 l1;
254
+ unsafe_blit s2 0 r l1 l2;
255
+ r
256
+
257
+
258
+ external char_chr: int -> char = "%identity"
259
+
260
+ let is_space = function
261
+ | ' ' | '\012' | '\n' | '\r' | '\t' -> true
262
+ | _ -> false
263
+
264
+ let trim s =
265
+ let len = length s in
266
+ let i = ref 0 in
267
+ while !i < len && is_space (unsafe_get s !i) do
268
+ incr i
269
+ done;
270
+ let j = ref (len - 1) in
271
+ while !j >= !i && is_space (unsafe_get s !j) do
272
+ decr j
273
+ done;
274
+ if !j >= !i then
275
+ sub s !i (!j - !i + 1)
276
+ else
277
+ empty
278
+
279
+ let escaped s =
280
+ let n = ref 0 in
281
+ for i = 0 to length s - 1 do
282
+ n := !n +
283
+ (match unsafe_get s i with
284
+ | '\"' | '\\' | '\n' | '\t' | '\r' | '\b' -> 2
285
+ | ' ' .. '~' -> 1
286
+ | _ -> 4)
287
+ done;
288
+ if !n = length s then copy s else begin
289
+ let s' = create !n in
290
+ n := 0;
291
+ for i = 0 to length s - 1 do
292
+ begin match unsafe_get s i with
293
+ | ('\"' | '\\') as c ->
294
+ unsafe_set s' !n '\\'; incr n; unsafe_set s' !n c
295
+ | '\n' ->
296
+ unsafe_set s' !n '\\'; incr n; unsafe_set s' !n 'n'
297
+ | '\t' ->
298
+ unsafe_set s' !n '\\'; incr n; unsafe_set s' !n 't'
299
+ | '\r' ->
300
+ unsafe_set s' !n '\\'; incr n; unsafe_set s' !n 'r'
301
+ | '\b' ->
302
+ unsafe_set s' !n '\\'; incr n; unsafe_set s' !n 'b'
303
+ | (' ' .. '~') as c -> unsafe_set s' !n c
304
+ | c ->
305
+ let a = (c :> int) in
306
+ unsafe_set s' !n '\\';
307
+ incr n;
308
+ unsafe_set s' !n (char_chr (48 + a / 100));
309
+ incr n;
310
+ unsafe_set s' !n (char_chr (48 + (a / 10) mod 10));
311
+ incr n;
312
+ unsafe_set s' !n (char_chr (48 + a mod 10));
313
+ end;
314
+ incr n
315
+ done;
316
+ s'
317
+ end
318
+
319
+ let map f s =
320
+ let l = length s in
321
+ if l = 0 then s else begin
322
+ let r = create l in
323
+ for i = 0 to l - 1 do unsafe_set r i (f (unsafe_get s i)) done;
324
+ r
325
+ end
326
+
327
+ let mapi f s =
328
+ let l = length s in
329
+ if l = 0 then s else begin
330
+ let r = create l in
331
+ for i = 0 to l - 1 do unsafe_set r i (f i (unsafe_get s i)) done;
332
+ r
333
+ end
334
+
335
+ let uppercase_ascii s = map Char.uppercase_ascii s
336
+ let lowercase_ascii s = map Char.lowercase_ascii s
337
+
338
+ let apply1 f s =
339
+ if length s = 0 then s else begin
340
+ let r = copy s in
341
+ unsafe_set r 0 (f(unsafe_get s 0));
342
+ r
343
+ end
344
+
345
+ let capitalize_ascii s = apply1 Char.uppercase_ascii s
346
+ let uncapitalize_ascii s = apply1 Char.lowercase_ascii s
347
+
348
+ (* duplicated in string.ml *)
349
+ let rec index_rec s lim i c =
350
+ if i >= lim then raise Not_found else
351
+ if unsafe_get s i = c then i else index_rec s lim (i + 1) c
352
+
353
+ (* duplicated in string.ml *)
354
+ let index s c = index_rec s (length s) 0 c
355
+
356
+ (* duplicated in string.ml *)
357
+ let rec index_rec_opt s lim i c =
358
+ if i >= lim then None else
359
+ if unsafe_get s i = c then Some i else index_rec_opt s lim (i + 1) c
360
+
361
+ (* duplicated in string.ml *)
362
+ let index_opt s c = index_rec_opt s (length s) 0 c
363
+
364
+ (* duplicated in string.ml *)
365
+ let index_from s i c =
366
+ let l = length s in
367
+ if i < 0 || i > l then invalid_arg "String.index_from / Bytes.index_from" else
368
+ index_rec s l i c
369
+
370
+ (* duplicated in string.ml *)
371
+ let index_from_opt s i c =
372
+ let l = length s in
373
+ if i < 0 || i > l then invalid_arg "String.index_from_opt / Bytes.index_from_opt" else
374
+ index_rec_opt s l i c
375
+
376
+ (* duplicated in string.ml *)
377
+ let rec rindex_rec s i c =
378
+ if i < 0 then raise Not_found else
379
+ if unsafe_get s i = c then i else rindex_rec s (i - 1) c
380
+
381
+ (* duplicated in string.ml *)
382
+ let rindex s c = rindex_rec s (length s - 1) c
383
+
384
+ (* duplicated in string.ml *)
385
+ let rindex_from s i c =
386
+ if i < -1 || i >= length s then
387
+ invalid_arg "String.rindex_from / Bytes.rindex_from"
388
+ else
389
+ rindex_rec s i c
390
+
391
+ (* duplicated in string.ml *)
392
+ let rec rindex_rec_opt s i c =
393
+ if i < 0 then None else
394
+ if unsafe_get s i = c then Some i else rindex_rec_opt s (i - 1) c
395
+
396
+ (* duplicated in string.ml *)
397
+ let rindex_opt s c = rindex_rec_opt s (length s - 1) c
398
+
399
+ (* duplicated in string.ml *)
400
+ let rindex_from_opt s i c =
401
+ if i < -1 || i >= length s then
402
+ invalid_arg "String.rindex_from_opt / Bytes.rindex_from_opt"
403
+ else
404
+ rindex_rec_opt s i c
405
+
406
+
407
+ (* duplicated in string.ml *)
408
+ let contains_from s i c =
409
+ let l = length s in
410
+ if i < 0 || i > l then
411
+ invalid_arg "String.contains_from / Bytes.contains_from"
412
+ else
413
+ try ignore (index_rec s l i c); true with Not_found -> false
414
+
415
+
416
+ (* duplicated in string.ml *)
417
+ let contains s c = contains_from s 0 c
418
+
419
+ (* duplicated in string.ml *)
420
+ let rcontains_from s i c =
421
+ if i < 0 || i >= length s then
422
+ invalid_arg "String.rcontains_from / Bytes.rcontains_from"
423
+ else
424
+ try ignore (rindex_rec s i c); true with Not_found -> false
425
+
426
+
427
+ type t = bytes
428
+
429
+ let compare (x: t) (y: t) = Pervasives.compare x y
430
+ let equal (x : t) (y : t) = x = y
431
+