@salang/sa 0.1.3 → 0.1.4

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 (282) hide show
  1. package/bin/sa.js +13 -1
  2. package/package.json +8 -7
  3. package/sa_std/alloc/layout.sal +12 -0
  4. package/sa_std/alloc/prelude.sa +1 -0
  5. package/sa_std/alloc/prelude.sal +1 -0
  6. package/sa_std/alloc/string.sa +3 -0
  7. package/sa_std/alloc/vec.sa +684 -0
  8. package/sa_std/alloc/vec.sal +4 -0
  9. package/sa_std/any.sa +130 -0
  10. package/sa_std/any.sal +23 -0
  11. package/sa_std/array.sa +1876 -0
  12. package/sa_std/ascii.sa +2 -0
  13. package/sa_std/ascii.sal +1 -0
  14. package/sa_std/async.sla +116 -0
  15. package/sa_std/binary_heap.sa +3003 -0
  16. package/sa_std/binary_heap.sal +7 -0
  17. package/sa_std/borrow.sa +171 -0
  18. package/sa_std/borrow.sal +13 -0
  19. package/sa_std/btree_map.sa +2210 -0
  20. package/sa_std/btree_map.sal +11 -0
  21. package/sa_std/btree_set.sa +1072 -0
  22. package/sa_std/btree_set.sal +6 -0
  23. package/sa_std/char.sa +1309 -0
  24. package/sa_std/char.sal +50 -0
  25. package/sa_std/cmp.sa +554 -0
  26. package/sa_std/cmp.sal +14 -0
  27. package/sa_std/collections/binary_heap.sa +1 -0
  28. package/sa_std/collections/btree_map.sa +1 -0
  29. package/sa_std/collections/btree_set.sa +1 -0
  30. package/sa_std/collections/hashmap.sa +1 -0
  31. package/sa_std/collections/hashset.sa +1 -0
  32. package/sa_std/collections/linked_list.sa +1120 -0
  33. package/sa_std/collections/linked_list.sal +10 -0
  34. package/sa_std/collections/prelude.sa +7 -0
  35. package/sa_std/collections/prelude.sal +1 -0
  36. package/sa_std/collections/vec_deque.sa +1 -0
  37. package/sa_std/collections.sal +13 -0
  38. package/sa_std/convert.sa +1115 -0
  39. package/sa_std/convert.sal +24 -0
  40. package/sa_std/core/arc.sa +233 -0
  41. package/sa_std/core/arc.sal +4 -0
  42. package/sa_std/core/ascii.sa +784 -0
  43. package/sa_std/core/ascii.sal +34 -0
  44. package/sa_std/core/bit.sa +41 -0
  45. package/sa_std/core/box.sa +1 -0
  46. package/sa_std/core/box.sal +2 -0
  47. package/sa_std/core/cell.sa +108 -0
  48. package/sa_std/core/cell.sal +5 -0
  49. package/sa_std/core/cleanup.sa +26 -0
  50. package/sa_std/core/control.sa +20 -0
  51. package/sa_std/core/derive.sa +60 -0
  52. package/sa_std/core/derive.sal +1 -0
  53. package/sa_std/core/dispatch.sa +7 -0
  54. package/sa_std/core/dispatch.sal +5 -0
  55. package/sa_std/core/future.sa +777 -0
  56. package/sa_std/core/future.sal +73 -0
  57. package/sa_std/core/hash.sa +48 -0
  58. package/sa_std/core/iter.sa +2805 -0
  59. package/sa_std/core/iter.sal +4 -0
  60. package/sa_std/core/loop.sa +60 -0
  61. package/sa_std/core/mem.sa +220 -0
  62. package/sa_std/core/option.sa +825 -0
  63. package/sa_std/core/option.sal +11 -0
  64. package/sa_std/core/panic.sa +23 -0
  65. package/sa_std/core/panic.sal +12 -0
  66. package/sa_std/core/prelude.sa +18 -0
  67. package/sa_std/core/prelude.sal +18 -0
  68. package/sa_std/core/rc.sa +225 -0
  69. package/sa_std/core/rc.sal +4 -0
  70. package/sa_std/core/refcell.sa +283 -0
  71. package/sa_std/core/refcell.sal +13 -0
  72. package/sa_std/core/result.sa +708 -0
  73. package/sa_std/core/result.sal +6 -0
  74. package/sa_std/core/rust_patterns.sal +295 -0
  75. package/sa_std/core/sa_core.sa +84 -0
  76. package/sa_std/core/slice.sa +4021 -0
  77. package/sa_std/core/slice.sal +7 -0
  78. package/sa_std/core/task.sa +112 -0
  79. package/sa_std/core/task.sal +15 -0
  80. package/sa_std/core/trait_object.sa +26 -0
  81. package/sa_std/core/trait_object.sal +4 -0
  82. package/sa_std/core/waker.sa +289 -0
  83. package/sa_std/core/waker.sal +31 -0
  84. package/sa_std/core/weak.sa +2 -0
  85. package/sa_std/core/weak.sal +4 -0
  86. package/sa_std/cow.sa +3 -0
  87. package/sa_std/cow.sal +2 -0
  88. package/sa_std/cstring.sa +3 -0
  89. package/sa_std/cstring.sal +2 -0
  90. package/sa_std/default.sa +99 -0
  91. package/sa_std/duration.sa +3 -0
  92. package/sa_std/duration.sal +2 -0
  93. package/sa_std/encoding/json.sa +259 -0
  94. package/sa_std/encoding/json.sai +54 -0
  95. package/sa_std/encoding/json.sal +35 -0
  96. package/sa_std/encoding/prelude.sa +1 -0
  97. package/sa_std/encoding/prelude.sal +0 -0
  98. package/sa_std/env.sa +390 -0
  99. package/sa_std/env.sai +25 -0
  100. package/sa_std/error.sa +253 -0
  101. package/sa_std/error.sal +44 -0
  102. package/sa_std/ffi/cstring.sa +3 -0
  103. package/sa_std/ffi/cstring.sal +1 -0
  104. package/sa_std/ffi/prelude.sa +2 -0
  105. package/sa_std/ffi/prelude.sal +2 -0
  106. package/sa_std/ffi.sa +635 -0
  107. package/sa_std/ffi.sal +51 -0
  108. package/sa_std/fmt.sa +2 -0
  109. package/sa_std/fmt.sai +18 -0
  110. package/sa_std/fmt.sal +35 -0
  111. package/sa_std/fs.sa +1023 -0
  112. package/sa_std/fs.sai +127 -0
  113. package/sa_std/fs.sal +51 -0
  114. package/sa_std/future.sa +2 -0
  115. package/sa_std/future.sal +1 -0
  116. package/sa_std/hash.sa +1486 -0
  117. package/sa_std/hash.sal +13 -0
  118. package/sa_std/hashmap.sa +1962 -0
  119. package/sa_std/hashmap.sal +20 -0
  120. package/sa_std/hashset.sa +1004 -0
  121. package/sa_std/hashset.sal +18 -0
  122. package/sa_std/http2.sa +78 -0
  123. package/sa_std/http2.sai +26 -0
  124. package/sa_std/http2.sal +36 -0
  125. package/sa_std/instant.sa +3 -0
  126. package/sa_std/instant.sal +2 -0
  127. package/sa_std/io/buf_reader.sa +43 -0
  128. package/sa_std/io/buf_writer.sa +35 -0
  129. package/sa_std/io/bufio.sa +4 -0
  130. package/sa_std/io/bufio.sal +4 -0
  131. package/sa_std/io/prelude.sa +1 -0
  132. package/sa_std/io/prelude.sal +1 -0
  133. package/sa_std/io/print.sa +2 -0
  134. package/sa_std/io/print.sai +3 -0
  135. package/sa_std/io.sa +925 -0
  136. package/sa_std/io.sai +25 -0
  137. package/sa_std/io.sal +84 -0
  138. package/sa_std/iter.sa +2 -0
  139. package/sa_std/iter.sal +1 -0
  140. package/sa_std/join_handle.sa +3 -0
  141. package/sa_std/join_handle.sal +2 -0
  142. package/sa_std/libsa_async.sa +80 -0
  143. package/sa_std/m_async.sa +137 -0
  144. package/sa_std/m_async.sal +30 -0
  145. package/sa_std/m_async.sla +2 -0
  146. package/sa_std/manually_drop.sa +3 -0
  147. package/sa_std/manually_drop.sal +2 -0
  148. package/sa_std/marker/phantom_data.sa +3 -0
  149. package/sa_std/marker/phantom_data.sal +1 -0
  150. package/sa_std/marker/prelude.sa +4 -0
  151. package/sa_std/marker/prelude.sal +4 -0
  152. package/sa_std/marker.sa +220 -0
  153. package/sa_std/marker.sal +15 -0
  154. package/sa_std/math.sa +84 -0
  155. package/sa_std/math.sai +10 -0
  156. package/sa_std/mem/manually_drop.sa +3 -0
  157. package/sa_std/mem/manually_drop.sal +1 -0
  158. package/sa_std/mem/prelude.sa +2 -0
  159. package/sa_std/mem/prelude.sal +2 -0
  160. package/sa_std/mem.sa +564 -0
  161. package/sa_std/mem.sal +40 -0
  162. package/sa_std/modstate.sai +19 -0
  163. package/sa_std/net.sa +4227 -0
  164. package/sa_std/net.sai +239 -0
  165. package/sa_std/net.sal +159 -0
  166. package/sa_std/netx.sa +85 -0
  167. package/sa_std/netx.sai +11 -0
  168. package/sa_std/netx.sal +39 -0
  169. package/sa_std/nonzero.sa +3 -0
  170. package/sa_std/nonzero.sal +2 -0
  171. package/sa_std/num/nonzero.sa +3 -0
  172. package/sa_std/num/nonzero.sal +1 -0
  173. package/sa_std/num/prelude.sa +3 -0
  174. package/sa_std/num/prelude.sal +3 -0
  175. package/sa_std/num.sa +17302 -0
  176. package/sa_std/num.sai +11 -0
  177. package/sa_std/num.sal +341 -0
  178. package/sa_std/ops.sa +1884 -0
  179. package/sa_std/ops.sal +68 -0
  180. package/sa_std/option.sa +2 -0
  181. package/sa_std/option.sal +1 -0
  182. package/sa_std/os/fd.sa +96 -0
  183. package/sa_std/os/fd.sai +7 -0
  184. package/sa_std/os/fd.sal +11 -0
  185. package/sa_std/os/prelude.sa +2 -0
  186. package/sa_std/os/prelude.sal +1 -0
  187. package/sa_std/os/unix_ffi.sa +271 -0
  188. package/sa_std/panic.sa +1 -0
  189. package/sa_std/panic.sal +1 -0
  190. package/sa_std/path.sa +3170 -0
  191. package/sa_std/path.sal +12 -0
  192. package/sa_std/phantom_data.sa +3 -0
  193. package/sa_std/phantom_data.sal +2 -0
  194. package/sa_std/pin.sa +79 -0
  195. package/sa_std/pin.sal +5 -0
  196. package/sa_std/plugin_async.sa +90 -0
  197. package/sa_std/plugin_async.sal +29 -0
  198. package/sa_std/plugin_async.sla +4 -0
  199. package/sa_std/plugin_http_async.sa +46 -0
  200. package/sa_std/plugin_http_server.sa +61 -0
  201. package/sa_std/plugin_http_server.sla +2 -0
  202. package/sa_std/plugin_sqlite.sa +106 -0
  203. package/sa_std/plugin_sqlite.sla +2 -0
  204. package/sa_std/prelude.sa +60 -0
  205. package/sa_std/prelude.sal +55 -0
  206. package/sa_std/process.sa +916 -0
  207. package/sa_std/process.sai +57 -0
  208. package/sa_std/process.sal +27 -0
  209. package/sa_std/ptr.sa +503 -0
  210. package/sa_std/ptr.sal +2 -0
  211. package/sa_std/result.sa +2 -0
  212. package/sa_std/result.sal +1 -0
  213. package/sa_std/rust_core.sa +51 -0
  214. package/sa_std/rust_core.sal +26 -0
  215. package/sa_std/sa.mod +7 -0
  216. package/sa_std/sort.sa +156 -0
  217. package/sa_std/str.sla +13 -0
  218. package/sa_std/string.sa +12240 -0
  219. package/sa_std/string.sai +25 -0
  220. package/sa_std/string.sal +17 -0
  221. package/sa_std/string_format.sa +269 -0
  222. package/sa_std/sync/atomic.sa +1500 -0
  223. package/sa_std/sync/atomic.sal +45 -0
  224. package/sa_std/sync/barrier.sa +105 -0
  225. package/sa_std/sync/barrier.sal +7 -0
  226. package/sa_std/sync/condvar.sa +240 -0
  227. package/sa_std/sync/condvar.sal +4 -0
  228. package/sa_std/sync/mpsc.sa +758 -0
  229. package/sa_std/sync/mpsc.sal +42 -0
  230. package/sa_std/sync/mpsc_list.sa +255 -0
  231. package/sa_std/sync/mpsc_list.sal +3 -0
  232. package/sa_std/sync/mutex.sa +182 -0
  233. package/sa_std/sync/mutex.sal +7 -0
  234. package/sa_std/sync/once.sa +371 -0
  235. package/sa_std/sync/once.sal +31 -0
  236. package/sa_std/sync/poison.sa +36 -0
  237. package/sa_std/sync/poison.sal +11 -0
  238. package/sa_std/sync/prelude.sa +8 -0
  239. package/sa_std/sync/prelude.sal +7 -0
  240. package/sa_std/sync/rwlock.sa +369 -0
  241. package/sa_std/sync/rwlock.sal +13 -0
  242. package/sa_std/task.sa +2 -0
  243. package/sa_std/task.sal +1 -0
  244. package/sa_std/term.sa +2 -0
  245. package/sa_std/term.sai +10 -0
  246. package/sa_std/term.sal +33 -0
  247. package/sa_std/testing/assert.sai +4 -0
  248. package/sa_std/testing/mock_io.sa +174 -0
  249. package/sa_std/testing/mock_io.sal +5 -0
  250. package/sa_std/testing/prelude.sa +2 -0
  251. package/sa_std/testing/prelude.sal +1 -0
  252. package/sa_std/text/prelude.sa +1 -0
  253. package/sa_std/text/prelude.sal +1 -0
  254. package/sa_std/text/regex.sa +2 -0
  255. package/sa_std/text/regex.sai +9 -0
  256. package/sa_std/text/regex.sal +33 -0
  257. package/sa_std/thread/join_handle.sa +3 -0
  258. package/sa_std/thread/join_handle.sal +1 -0
  259. package/sa_std/thread/prelude.sa +4 -0
  260. package/sa_std/thread/prelude.sal +3 -0
  261. package/sa_std/thread.sa +160 -0
  262. package/sa_std/thread.sai +11 -0
  263. package/sa_std/thread.sal +4 -0
  264. package/sa_std/thread_local.sa +45 -0
  265. package/sa_std/thread_local.sai +9 -0
  266. package/sa_std/time/duration.sa +3 -0
  267. package/sa_std/time/duration.sal +1 -0
  268. package/sa_std/time/instant.sa +3 -0
  269. package/sa_std/time/instant.sal +1 -0
  270. package/sa_std/time/prelude.sa +4 -0
  271. package/sa_std/time/prelude.sal +4 -0
  272. package/sa_std/time.sa +850 -0
  273. package/sa_std/time.sai +37 -0
  274. package/sa_std/time.sal +35 -0
  275. package/sa_std/time.sla +67 -0
  276. package/sa_std/tls_client.sai +39 -0
  277. package/sa_std/vec.sa +5754 -0
  278. package/sa_std/vec.sal +1 -0
  279. package/sa_std/vec_deque.sa +4925 -0
  280. package/sa_std/vec_deque.sal +8 -0
  281. package/sa_std/vec_runtime_macros.sa +11 -0
  282. package/sa_std/ws_client.sai +57 -0
package/sa_std/fs.sai ADDED
@@ -0,0 +1,127 @@
1
+ // SA-facing contracts for the Zig-backed sa_std.fs module.
2
+ // File handles are opaque owned ptr values and must be closed explicitly.
3
+ @extern sa_fs_file_open(&path: ptr, path_len: u64, flags: u32) -> i32
4
+ @extern sa_fs_file_create(&path: ptr, path_len: u64) -> i32
5
+ @extern sa_fs_file_close(file: u64) -> i32
6
+
7
+ @extern sa_fs_file_read(file: u64, &buf: ptr, cap: u64) -> i32
8
+ @extern sa_fs_file_read_exact(file: u64, &buf: ptr, len: u64) -> i32
9
+ @extern sa_fs_file_write(file: u64, &buf: ptr, len: u64) -> i32
10
+ @extern sa_fs_file_write_all(file: u64, &buf: ptr, len: u64) -> i32
11
+ @extern sa_fs_file_flush(file: u64) -> i32
12
+ @extern sa_fs_file_sync_data(file: u64) -> i32
13
+ @extern sa_fs_file_sync(file: u64) -> i32
14
+ @extern sa_fs_file_truncate(file: u64, new_size: u64) -> i32
15
+ @extern sa_fs_file_seek(file: u64, whence: u32, offset: i64) -> i32
16
+
17
+ @extern sa_std_fs_open_read(&path: ptr, path_len: u64, &out_handle: ptr) -> i32
18
+ @extern sa_std_fs_open_write(&path: ptr, path_len: u64, truncate: u32, &out_handle: ptr) -> i32
19
+ @extern sa_std_fs_open_options(&path: ptr, path_len: u64, flags: u32, create_mode: u32, custom_flags: u32, &out_handle: ptr) -> i32
20
+ @extern sa_std_fs_file_from_raw_fd(fd: i32, &out_handle: ptr) -> i32
21
+ @extern sa_std_fs_file_read(file: u64, &buf: ptr, cap: u64, &out_read: ptr) -> i32
22
+ @extern sa_std_fs_file_read_at(file: u64, &buf: ptr, cap: u64, offset: u64, &out_read: ptr) -> i32
23
+ @extern sa_std_fs_file_read_exact_at(file: u64, &buf: ptr, len: u64, offset: u64) -> i32
24
+ @extern sa_std_fs_file_write(file: u64, &buf: ptr, len: u64, &out_written: ptr) -> i32
25
+ @extern sa_std_fs_file_write_at(file: u64, &buf: ptr, len: u64, offset: u64, &out_written: ptr) -> i32
26
+ @extern sa_std_fs_file_write_all_at(file: u64, &buf: ptr, len: u64, offset: u64) -> i32
27
+ @extern sa_std_fs_file_seek(file: u64, whence: u32, offset: i64, &out_pos: ptr) -> i32
28
+ @extern sa_std_fs_remove(&path: ptr, path_len: u64) -> i32
29
+ @extern sa_std_fs_exists(&path: ptr, path_len: u64) -> i32
30
+ @extern sa_std_fs_try_exists(&path: ptr, path_len: u64, &out_exists: ptr) -> i32
31
+ @extern sa_std_fs_len(&path: ptr, path_len: u64, &out_len: ptr) -> i32
32
+ @extern sa_std_fs_read_file(&path: ptr, path_len: u64, max_bytes: u64, &out_handle: ptr) -> i32
33
+ @extern sa_std_fs_read_to_string(&path: ptr, path_len: u64, max_bytes: u64, &out_handle: ptr) -> i32
34
+ @extern sa_std_fs_read_file_base64(&path: ptr, path_len: u64, max_bytes: u64, &out_handle: ptr) -> i32
35
+ @extern sa_std_fs_read_dir_json(&path: ptr, path_len: u64, max_entries: u64, &out_handle: ptr) -> i32
36
+ @extern sa_std_fs_read_dir_entries(&path: ptr, path_len: u64, max_entries: u64, &out_handle: ptr) -> i32
37
+ @extern sa_std_fs_dir_entries_get(entries: u64, index: u64, &out_entry: ptr) -> i32
38
+ @extern sa_std_fs_metadata(&path: ptr, path_len: u64, &out_handle: ptr) -> i32
39
+ @extern sa_std_fs_metadata_json(&path: ptr, path_len: u64, &out_handle: ptr) -> i32
40
+ @extern sa_std_fs_metadata_free(metadata: u64) -> i32
41
+ @extern sa_std_fs_canonicalize(&path: ptr, path_len: u64, &out_handle: ptr) -> i32
42
+ @extern sa_std_close(handle: u64) -> i32
43
+
44
+ // Whole-file reads return an owned buffer handle. Free it with sa_fs_read_buffer_free.
45
+ @extern sa_fs_read_file(&path: ptr, path_len: u64, max_bytes: u64) -> u64!
46
+ @extern sa_fs_read_to_string(&path: ptr, path_len: u64, max_bytes: u64) -> u64!
47
+ @extern sa_fs_write_file(&path: ptr, path_len: u64, &buf: ptr, len: u64) -> i32
48
+ @extern sa_fs_read_buffer_data(buffer: u64) -> &ptr
49
+ @extern sa_fs_read_buffer_len(buffer: u64) -> u64
50
+ @extern sa_fs_read_buffer_free(^buffer: u64) -> i32
51
+ @extern sa_fs_read_file_base64(&path: ptr, path_len: u64, max_bytes: u64) -> u64!
52
+ @extern sa_fs_write_file_base64(&path: ptr, path_len: u64, &data_base64: ptr, data_base64_len: u64) -> i32
53
+ @extern sa_fs_read_dir_json(&path: ptr, path_len: u64, max_entries: u64) -> u64!
54
+ @extern sa_fs_dir_buffer_data(buffer: u64) -> &ptr
55
+ @extern sa_fs_dir_buffer_len(buffer: u64) -> u64
56
+ @extern sa_fs_dir_buffer_free(^buffer: u64) -> i32
57
+ @extern sa_fs_read_dir_entries(&path: ptr, path_len: u64, max_entries: u64) -> u64!
58
+ @extern sa_fs_dir_entries_len(entries: u64) -> u64
59
+ @extern sa_fs_dir_entries_free(^entries: u64) -> i32
60
+ @extern sa_fs_dir_entry_name_ptr(entry: u64) -> &ptr
61
+ @extern sa_fs_dir_entry_name_len(entry: u64) -> u64
62
+ @extern sa_fs_dir_entry_file_name_ptr(entry: u64) -> &ptr
63
+ @extern sa_fs_dir_entry_file_name_len(entry: u64) -> u64
64
+ @extern sa_fs_dir_entry_kind(entry: u64) -> u32
65
+ @extern sa_fs_dir_entry_ino(entry: u64) -> u64
66
+ @extern sa_fs_dir_entry_free(^entry: u64) -> i32
67
+
68
+ @extern sa_fs_metadata(&path: ptr, path_len: u64) -> u64!
69
+ @extern sa_fs_metadata_json(&path: ptr, path_len: u64) -> u64!
70
+ @extern sa_fs_metadata_is_file(metadata: u64) -> u8
71
+ @extern sa_fs_metadata_is_directory(metadata: u64) -> u8
72
+ @extern sa_fs_metadata_is_symlink(metadata: u64) -> u8
73
+ @extern sa_fs_metadata_is_block_device(metadata: u64) -> u8
74
+ @extern sa_fs_metadata_is_char_device(metadata: u64) -> u8
75
+ @extern sa_fs_metadata_is_fifo(metadata: u64) -> u8
76
+ @extern sa_fs_metadata_is_socket(metadata: u64) -> u8
77
+ @extern sa_fs_metadata_modified_ms(metadata: u64) -> i64
78
+ @extern sa_fs_metadata_created_ms(metadata: u64) -> i64
79
+ @extern sa_fs_metadata_accessed_ms(metadata: u64) -> i64
80
+ @extern sa_fs_metadata_changed_ms(metadata: u64) -> i64
81
+ @extern sa_fs_metadata_len(metadata: u64) -> u64
82
+ @extern sa_fs_metadata_mode(metadata: u64) -> u32
83
+ @extern sa_fs_metadata_uid(metadata: u64) -> u32
84
+ @extern sa_fs_metadata_gid(metadata: u64) -> u32
85
+ @extern sa_fs_metadata_ino(metadata: u64) -> u64
86
+ @extern sa_fs_metadata_dev(metadata: u64) -> u64
87
+ @extern sa_fs_metadata_nlink(metadata: u64) -> u64
88
+ @extern sa_fs_metadata_rdev(metadata: u64) -> u64
89
+ @extern sa_fs_metadata_blksize(metadata: u64) -> u64
90
+ @extern sa_fs_metadata_blocks(metadata: u64) -> u64
91
+ @extern sa_fs_metadata_st_dev(metadata: u64) -> u64
92
+ @extern sa_fs_metadata_st_ino(metadata: u64) -> u64
93
+ @extern sa_fs_metadata_st_mode(metadata: u64) -> u32
94
+ @extern sa_fs_metadata_st_nlink(metadata: u64) -> u64
95
+ @extern sa_fs_metadata_st_uid(metadata: u64) -> u32
96
+ @extern sa_fs_metadata_st_gid(metadata: u64) -> u32
97
+ @extern sa_fs_metadata_st_rdev(metadata: u64) -> u64
98
+ @extern sa_fs_metadata_st_size(metadata: u64) -> u64
99
+ @extern sa_fs_metadata_st_atime(metadata: u64) -> i64
100
+ @extern sa_fs_metadata_st_atime_nsec(metadata: u64) -> i64
101
+ @extern sa_fs_metadata_st_mtime(metadata: u64) -> i64
102
+ @extern sa_fs_metadata_st_mtime_nsec(metadata: u64) -> i64
103
+ @extern sa_fs_metadata_st_ctime(metadata: u64) -> i64
104
+ @extern sa_fs_metadata_st_ctime_nsec(metadata: u64) -> i64
105
+ @extern sa_fs_metadata_st_blksize(metadata: u64) -> u64
106
+ @extern sa_fs_metadata_st_blocks(metadata: u64) -> u64
107
+ @extern sa_fs_metadata_free(metadata: u64) -> i32!
108
+ @extern sa_fs_remove_file(&path: ptr, path_len: u64) -> i32
109
+ @extern sa_fs_rename(&from_path: ptr, from_len: u64, &to_path: ptr, to_len: u64) -> i32
110
+ @extern sa_fs_make_dir(&path: ptr, path_len: u64) -> i32
111
+ @extern sa_fs_make_dir_mode(&path: ptr, path_len: u64, mode: u32) -> i32
112
+ @extern sa_fs_create_dir(&path: ptr, path_len: u64) -> i32
113
+ @extern sa_fs_create_dir_mode(&path: ptr, path_len: u64, mode: u32) -> i32
114
+ @extern sa_fs_remove_dir(&path: ptr, path_len: u64) -> i32
115
+ @extern sa_fs_remove_dir_all(&path: ptr, path_len: u64) -> i32
116
+ @extern sa_fs_remove_path(&path: ptr, path_len: u64) -> i32
117
+ @extern sa_fs_copy_file(&from_path: ptr, from_len: u64, &to_path: ptr, to_len: u64) -> i32
118
+ @extern sa_fs_set_permissions(&path: ptr, path_len: u64, mode: u32) -> i32
119
+ @extern sa_fs_set_times_ms(&path: ptr, path_len: u64, accessed_ms: i64, modified_ms: i64) -> i32
120
+ @extern sa_fs_hard_link(&from_path: ptr, from_len: u64, &to_path: ptr, to_len: u64) -> i32
121
+ @extern sa_fs_symlink(&target_path: ptr, target_len: u64, &link_path: ptr, link_len: u64) -> i32
122
+ @extern sa_fs_chown(&path: ptr, path_len: u64, uid: u32, gid: u32, has_uid: u32, has_gid: u32) -> i32
123
+ @extern sa_fs_lchown(&path: ptr, path_len: u64, uid: u32, gid: u32, has_uid: u32, has_gid: u32) -> i32
124
+ @extern sa_fs_fchown(file: u64, uid: u32, gid: u32, has_uid: u32, has_gid: u32) -> i32
125
+ @extern sa_fs_chroot(&path: ptr, path_len: u64) -> i32
126
+ @extern sa_fs_mkfifo(&path: ptr, path_len: u64, mode: u32) -> i32
127
+ @extern sa_std_fs_read_link(&path: ptr, path_len: u64, &out_handle: ptr) -> i32
package/sa_std/fs.sal ADDED
@@ -0,0 +1,51 @@
1
+ #def SA_FS_OK = 0
2
+ #def SA_FS_ERR_UNKNOWN = 1
3
+ #def SA_FS_ERR_NOT_FOUND = 2
4
+ #def SA_FS_ERR_PERMISSION_DENIED = 3
5
+ #def SA_FS_ERR_ALREADY_EXISTS = 4
6
+ #def SA_FS_ERR_INVALID_PATH = 5
7
+ #def SA_FS_ERR_IS_DIR = 6
8
+ #def SA_FS_ERR_NOT_DIR = 7
9
+
10
+ #def SA_FS_OPEN_READ = 1
11
+ #def SA_FS_OPEN_WRITE = 2
12
+ #def SA_FS_OPEN_CREATE = 4
13
+ #def SA_FS_OPEN_TRUNCATE = 8
14
+ #def SA_FS_OPEN_APPEND = 16
15
+ #def SA_FS_OPEN_MODE_DEFAULT = 438
16
+ #def SA_FS_CHOWN_ID_UNCHANGED = 4294967295
17
+
18
+ #def SA_FS_CUSTOM_APPEND = 1024
19
+ #def SA_FS_CUSTOM_NONBLOCK = 2048
20
+ #def SA_FS_CUSTOM_DSYNC = 4096
21
+ #def SA_FS_CUSTOM_DIRECT = 16384
22
+ #def SA_FS_CUSTOM_DIRECTORY = 65536
23
+ #def SA_FS_CUSTOM_NOFOLLOW = 131072
24
+ #def SA_FS_CUSTOM_CLOEXEC = 524288
25
+ #def SA_FS_CUSTOM_SYNC = 1052672
26
+
27
+ #def SA_FS_SEEK_START = 0
28
+ #def SA_FS_SEEK_CURRENT = 1
29
+ #def SA_FS_SEEK_END = 2
30
+
31
+ #def SA_FS_FILE_REGULAR = 1
32
+ #def SA_FS_FILE_DIR = 2
33
+ #def SA_FS_FILE_SYMLINK = 3
34
+ #def SA_FS_FILE_OTHER = 255
35
+
36
+ #def SaFsReadBuffer_SIZE = 24
37
+ #def SaFsReadBuffer_ptr = +0
38
+ #def SaFsReadBuffer_len = +8
39
+ #def SaFsReadBuffer_cap = +16
40
+
41
+ #def SaFsPermissions_SIZE = 4
42
+ #def SaFsPermissions_mode = +0
43
+ #def SA_FS_PERM_WRITE_BITS = 146
44
+ #def SA_FS_PERM_OWNER_WRITE = 128
45
+
46
+ #def SaFsMetadata_SIZE = 32
47
+ #def SaFsMetadata_kind = +0
48
+ #def SaFsMetadata_permissions = +4
49
+ #def SaFsMetadata_len = +8
50
+ #def SaFsMetadata_modified_unix_sec = +16
51
+ #def SaFsMetadata_created_unix_sec = +24
@@ -0,0 +1,2 @@
1
+ @import "core/future.sal"
2
+ @import "core/future.sa"
@@ -0,0 +1 @@
1
+ @import "core/future.sal"