itsi-scheduler 0.1.5 → 0.1.14

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.

Potentially problematic release.


This version of itsi-scheduler might be problematic. Click here for more details.

Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/CODE_OF_CONDUCT.md +7 -0
  3. data/Cargo.lock +83 -22
  4. data/README.md +5 -0
  5. data/_index.md +7 -0
  6. data/ext/itsi_error/src/from.rs +26 -29
  7. data/ext/itsi_error/src/lib.rs +10 -1
  8. data/ext/itsi_error/target/debug/build/clang-sys-da71b0344e568175/out/common.rs +355 -0
  9. data/ext/itsi_error/target/debug/build/clang-sys-da71b0344e568175/out/dynamic.rs +276 -0
  10. data/ext/itsi_error/target/debug/build/clang-sys-da71b0344e568175/out/macros.rs +49 -0
  11. data/ext/itsi_error/target/debug/build/rb-sys-49f554618693db24/out/bindings-0.9.110-mri-arm64-darwin23-3.4.2.rs +8865 -0
  12. data/ext/itsi_error/target/debug/incremental/itsi_error-1mmt5sux7jb0i/s-h510z7m8v9-0bxu7yd.lock +0 -0
  13. data/ext/itsi_error/target/debug/incremental/itsi_error-2vn3jey74oiw0/s-h5113n0e7e-1v5qzs6.lock +0 -0
  14. data/ext/itsi_error/target/debug/incremental/itsi_error-37uv9dicz7awp/s-h510ykifhe-0tbnep2.lock +0 -0
  15. data/ext/itsi_error/target/debug/incremental/itsi_error-37uv9dicz7awp/s-h510yyocpj-0tz7ug7.lock +0 -0
  16. data/ext/itsi_error/target/debug/incremental/itsi_error-37uv9dicz7awp/s-h510z0xc8g-14ol18k.lock +0 -0
  17. data/ext/itsi_error/target/debug/incremental/itsi_error-3g5qf4y7d54uj/s-h5113n0e7d-1trk8on.lock +0 -0
  18. data/ext/itsi_error/target/debug/incremental/itsi_error-3lpfftm45d3e2/s-h510z7m8r3-1pxp20o.lock +0 -0
  19. data/ext/itsi_error/target/debug/incremental/itsi_error-3o4qownhl3d7n/s-h510ykifek-1uxasnk.lock +0 -0
  20. data/ext/itsi_error/target/debug/incremental/itsi_error-3o4qownhl3d7n/s-h510yyocki-11u37qm.lock +0 -0
  21. data/ext/itsi_error/target/debug/incremental/itsi_error-3o4qownhl3d7n/s-h510z0xc93-0pmy0zm.lock +0 -0
  22. data/ext/itsi_rb_helpers/Cargo.toml +1 -0
  23. data/ext/itsi_rb_helpers/src/heap_value.rs +18 -0
  24. data/ext/itsi_rb_helpers/src/lib.rs +59 -9
  25. data/ext/itsi_rb_helpers/target/debug/build/clang-sys-da71b0344e568175/out/common.rs +355 -0
  26. data/ext/itsi_rb_helpers/target/debug/build/clang-sys-da71b0344e568175/out/dynamic.rs +276 -0
  27. data/ext/itsi_rb_helpers/target/debug/build/clang-sys-da71b0344e568175/out/macros.rs +49 -0
  28. data/ext/itsi_rb_helpers/target/debug/build/rb-sys-eb9ed4ff3a60f995/out/bindings-0.9.110-mri-arm64-darwin23-3.4.2.rs +8865 -0
  29. data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-040pxg6yhb3g3/s-h5113n7a1b-03bwlt4.lock +0 -0
  30. data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-131g1u4dzkt1a/s-h51113xnh3-1eik1ip.lock +0 -0
  31. data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-131g1u4dzkt1a/s-h5111704jj-0g4rj8x.lock +0 -0
  32. data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-1q2d3drtxrzs5/s-h5113n79yl-0bxcqc5.lock +0 -0
  33. data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-374a9h7ovycj0/s-h51113xoox-10de2hp.lock +0 -0
  34. data/ext/itsi_rb_helpers/target/debug/incremental/itsi_rb_helpers-374a9h7ovycj0/s-h5111704w7-0vdq7gq.lock +0 -0
  35. data/ext/itsi_server/Cargo.lock +2956 -0
  36. data/ext/itsi_server/Cargo.toml +69 -26
  37. data/ext/itsi_server/src/env.rs +43 -0
  38. data/ext/itsi_server/src/lib.rs +81 -75
  39. data/ext/itsi_server/src/{body_proxy → ruby_types/itsi_body_proxy}/big_bytes.rs +10 -5
  40. data/ext/itsi_server/src/{body_proxy/itsi_body_proxy.rs → ruby_types/itsi_body_proxy/mod.rs} +22 -3
  41. data/ext/itsi_server/src/ruby_types/itsi_grpc_request.rs +147 -0
  42. data/ext/itsi_server/src/ruby_types/itsi_grpc_response.rs +19 -0
  43. data/ext/itsi_server/src/ruby_types/itsi_grpc_stream/mod.rs +216 -0
  44. data/ext/itsi_server/src/{request/itsi_request.rs → ruby_types/itsi_http_request.rs} +108 -103
  45. data/ext/itsi_server/src/{response/itsi_response.rs → ruby_types/itsi_http_response.rs} +79 -38
  46. data/ext/itsi_server/src/ruby_types/itsi_server/file_watcher.rs +225 -0
  47. data/ext/itsi_server/src/ruby_types/itsi_server/itsi_server_config.rs +355 -0
  48. data/ext/itsi_server/src/ruby_types/itsi_server.rs +82 -0
  49. data/ext/itsi_server/src/ruby_types/mod.rs +55 -0
  50. data/ext/itsi_server/src/server/bind.rs +33 -20
  51. data/ext/itsi_server/src/server/byte_frame.rs +32 -0
  52. data/ext/itsi_server/src/server/cache_store.rs +74 -0
  53. data/ext/itsi_server/src/server/itsi_service.rs +172 -0
  54. data/ext/itsi_server/src/server/lifecycle_event.rs +3 -0
  55. data/ext/itsi_server/src/server/listener.rs +197 -106
  56. data/ext/itsi_server/src/server/middleware_stack/middleware.rs +153 -0
  57. data/ext/itsi_server/src/server/middleware_stack/middlewares/allow_list.rs +47 -0
  58. data/ext/itsi_server/src/server/middleware_stack/middlewares/auth_api_key.rs +58 -0
  59. data/ext/itsi_server/src/server/middleware_stack/middlewares/auth_basic.rs +82 -0
  60. data/ext/itsi_server/src/server/middleware_stack/middlewares/auth_jwt.rs +264 -0
  61. data/ext/itsi_server/src/server/middleware_stack/middlewares/cache_control.rs +139 -0
  62. data/ext/itsi_server/src/server/middleware_stack/middlewares/compression.rs +300 -0
  63. data/ext/itsi_server/src/server/middleware_stack/middlewares/cors.rs +287 -0
  64. data/ext/itsi_server/src/server/middleware_stack/middlewares/deny_list.rs +48 -0
  65. data/ext/itsi_server/src/server/middleware_stack/middlewares/error_response.rs +127 -0
  66. data/ext/itsi_server/src/server/middleware_stack/middlewares/etag.rs +191 -0
  67. data/ext/itsi_server/src/server/middleware_stack/middlewares/grpc_service.rs +72 -0
  68. data/ext/itsi_server/src/server/middleware_stack/middlewares/header_interpretation.rs +85 -0
  69. data/ext/itsi_server/src/server/middleware_stack/middlewares/intrusion_protection.rs +195 -0
  70. data/ext/itsi_server/src/server/middleware_stack/middlewares/log_requests.rs +82 -0
  71. data/ext/itsi_server/src/server/middleware_stack/middlewares/mod.rs +82 -0
  72. data/ext/itsi_server/src/server/middleware_stack/middlewares/proxy.rs +216 -0
  73. data/ext/itsi_server/src/server/middleware_stack/middlewares/rate_limit.rs +124 -0
  74. data/ext/itsi_server/src/server/middleware_stack/middlewares/redirect.rs +76 -0
  75. data/ext/itsi_server/src/server/middleware_stack/middlewares/request_headers.rs +43 -0
  76. data/ext/itsi_server/src/server/middleware_stack/middlewares/response_headers.rs +34 -0
  77. data/ext/itsi_server/src/server/middleware_stack/middlewares/ruby_app.rs +93 -0
  78. data/ext/itsi_server/src/server/middleware_stack/middlewares/static_assets.rs +162 -0
  79. data/ext/itsi_server/src/server/middleware_stack/middlewares/string_rewrite.rs +158 -0
  80. data/ext/itsi_server/src/server/middleware_stack/middlewares/token_source.rs +12 -0
  81. data/ext/itsi_server/src/server/middleware_stack/mod.rs +315 -0
  82. data/ext/itsi_server/src/server/mod.rs +8 -1
  83. data/ext/itsi_server/src/server/process_worker.rs +44 -11
  84. data/ext/itsi_server/src/server/rate_limiter.rs +565 -0
  85. data/ext/itsi_server/src/server/request_job.rs +11 -0
  86. data/ext/itsi_server/src/server/serve_strategy/cluster_mode.rs +129 -46
  87. data/ext/itsi_server/src/server/serve_strategy/mod.rs +9 -6
  88. data/ext/itsi_server/src/server/serve_strategy/single_mode.rs +337 -163
  89. data/ext/itsi_server/src/server/signal.rs +25 -2
  90. data/ext/itsi_server/src/server/static_file_server.rs +984 -0
  91. data/ext/itsi_server/src/server/thread_worker.rs +164 -88
  92. data/ext/itsi_server/src/server/tls/locked_dir_cache.rs +55 -17
  93. data/ext/itsi_server/src/server/tls.rs +104 -28
  94. data/ext/itsi_server/src/server/types.rs +43 -0
  95. data/ext/itsi_tracing/Cargo.toml +1 -0
  96. data/ext/itsi_tracing/src/lib.rs +222 -34
  97. data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-0994n8rpvvt9m/s-h510hfz1f6-1kbycmq.lock +0 -0
  98. data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-0bob7bf4yq34i/s-h5113125h5-0lh4rag.lock +0 -0
  99. data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-2fcodulrxbbxo/s-h510h2infk-0hp5kjw.lock +0 -0
  100. data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-2iak63r1woi1l/s-h510h2in4q-0kxfzw1.lock +0 -0
  101. data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-2kk4qj9gn5dg2/s-h5113124kv-0enwon2.lock +0 -0
  102. data/ext/itsi_tracing/target/debug/incremental/itsi_tracing-2mwo0yas7dtw4/s-h510hfz1ha-1udgpei.lock +0 -0
  103. data/lib/itsi/scheduler/version.rb +1 -1
  104. data/lib/itsi/scheduler.rb +2 -2
  105. metadata +79 -14
  106. data/ext/itsi_server/extconf.rb +0 -6
  107. data/ext/itsi_server/src/body_proxy/mod.rs +0 -2
  108. data/ext/itsi_server/src/request/mod.rs +0 -1
  109. data/ext/itsi_server/src/response/mod.rs +0 -1
  110. data/ext/itsi_server/src/server/itsi_ca/itsi_ca.crt +0 -13
  111. data/ext/itsi_server/src/server/itsi_ca/itsi_ca.key +0 -5
  112. data/ext/itsi_server/src/server/itsi_server.rs +0 -244
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 75599726844e215e80b59ae8a95549e23024e4e070d768ca3f085a8fbb2591a9
4
- data.tar.gz: c84726c45c08562ad4b8ebd4a6c9eb4ebd1f50521afca027c1e6a69d8b2e4eb5
3
+ metadata.gz: 6950d858938b1a548b2f493c61ef786b93c6067e786d1b3c20490aa89f81b7f1
4
+ data.tar.gz: ccbc30811c509b4a2ea01b298c1151a982144015d98699aa04826a88cba84aed
5
5
  SHA512:
6
- metadata.gz: 0a944a2d952111520bf473853ec7b363ed16a53ddf4b0ae252c0fab36d70b4dedb561d55feab827d34c21b0d468cb6b0e978dba22584bc873092cc3d9515a7af
7
- data.tar.gz: 5e27924c41ebc8f6b84f8d1e507ff04d3d86d8326c2da21ca2cbe4b1fc703b7bd0026813cf8353775e126d562e25cae93ed8c03f714b07eb48c4d3e15b91fc94
6
+ metadata.gz: 81c6a5bf2fc56fc7b1fe911f2e77896f4528f272025447c2819b300400f6d14f9f7d38be9445ec5bb17eb0e2fc1705a9b5d1153009bd357a686b61fade401e45
7
+ data.tar.gz: e4f2a8ca14ddece21b20f3eee79903f639b596e263b8f1bd9daa792b9236afabbb87391542f5f98cd3a790752b65f8da719d4434f56c869ad4944668e88eafc0
data/CODE_OF_CONDUCT.md CHANGED
@@ -1,3 +1,10 @@
1
+ ---
2
+ title: Code of Conduct
3
+ type: docs
4
+ next: docs/
5
+ prev: docs/folder/
6
+ ---
7
+
1
8
  # Contributor Covenant Code of Conduct
2
9
 
3
10
  ## Our Pledge
data/Cargo.lock CHANGED
@@ -68,9 +68,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
68
68
 
69
69
  [[package]]
70
70
  name = "cc"
71
- version = "1.2.16"
71
+ version = "1.2.15"
72
72
  source = "registry+https://github.com/rust-lang/crates.io-index"
73
- checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c"
73
+ checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af"
74
74
  dependencies = [
75
75
  "shlex",
76
76
  ]
@@ -107,6 +107,21 @@ dependencies = [
107
107
  "libloading",
108
108
  ]
109
109
 
110
+ [[package]]
111
+ name = "crossbeam-channel"
112
+ version = "0.5.14"
113
+ source = "registry+https://github.com/rust-lang/crates.io-index"
114
+ checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471"
115
+ dependencies = [
116
+ "crossbeam-utils",
117
+ ]
118
+
119
+ [[package]]
120
+ name = "crossbeam-utils"
121
+ version = "0.8.21"
122
+ source = "registry+https://github.com/rust-lang/crates.io-index"
123
+ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
124
+
110
125
  [[package]]
111
126
  name = "deranged"
112
127
  version = "0.3.11"
@@ -139,9 +154,9 @@ dependencies = [
139
154
 
140
155
  [[package]]
141
156
  name = "either"
142
- version = "1.14.0"
157
+ version = "1.15.0"
143
158
  source = "registry+https://github.com/rust-lang/crates.io-index"
144
- checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d"
159
+ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
145
160
 
146
161
  [[package]]
147
162
  name = "getrandom"
@@ -186,9 +201,9 @@ dependencies = [
186
201
 
187
202
  [[package]]
188
203
  name = "itoa"
189
- version = "1.0.15"
204
+ version = "1.0.14"
190
205
  source = "registry+https://github.com/rust-lang/crates.io-index"
191
- checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
206
+ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
192
207
 
193
208
  [[package]]
194
209
  name = "itsi-scheduler"
@@ -216,7 +231,7 @@ dependencies = [
216
231
  "magnus",
217
232
  "nix",
218
233
  "rcgen",
219
- "thiserror",
234
+ "thiserror 2.0.12",
220
235
  ]
221
236
 
222
237
  [[package]]
@@ -236,6 +251,7 @@ dependencies = [
236
251
  "magnus",
237
252
  "nix",
238
253
  "rb-sys",
254
+ "serde",
239
255
  ]
240
256
 
241
257
  [[package]]
@@ -244,6 +260,7 @@ version = "0.1.0"
244
260
  dependencies = [
245
261
  "atty",
246
262
  "tracing",
263
+ "tracing-appender",
247
264
  "tracing-attributes",
248
265
  "tracing-subscriber",
249
266
  ]
@@ -507,9 +524,9 @@ dependencies = [
507
524
 
508
525
  [[package]]
509
526
  name = "redox_syscall"
510
- version = "0.5.10"
527
+ version = "0.5.9"
511
528
  source = "registry+https://github.com/rust-lang/crates.io-index"
512
- checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1"
529
+ checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f"
513
530
  dependencies = [
514
531
  "bitflags",
515
532
  ]
@@ -560,9 +577,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
560
577
 
561
578
  [[package]]
562
579
  name = "ring"
563
- version = "0.17.11"
580
+ version = "0.17.14"
564
581
  source = "registry+https://github.com/rust-lang/crates.io-index"
565
- checksum = "da5349ae27d3887ca812fb375b45a4fbb36d8d12d2df394968cd86e35683fe73"
582
+ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
566
583
  dependencies = [
567
584
  "cc",
568
585
  "cfg-if",
@@ -586,9 +603,9 @@ checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c"
586
603
 
587
604
  [[package]]
588
605
  name = "ryu"
589
- version = "1.0.20"
606
+ version = "1.0.19"
590
607
  source = "registry+https://github.com/rust-lang/crates.io-index"
591
- checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
608
+ checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd"
592
609
 
593
610
  [[package]]
594
611
  name = "scopeguard"
@@ -604,18 +621,18 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
604
621
 
605
622
  [[package]]
606
623
  name = "serde"
607
- version = "1.0.218"
624
+ version = "1.0.219"
608
625
  source = "registry+https://github.com/rust-lang/crates.io-index"
609
- checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60"
626
+ checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
610
627
  dependencies = [
611
628
  "serde_derive",
612
629
  ]
613
630
 
614
631
  [[package]]
615
632
  name = "serde_derive"
616
- version = "1.0.218"
633
+ version = "1.0.219"
617
634
  source = "registry+https://github.com/rust-lang/crates.io-index"
618
- checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b"
635
+ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
619
636
  dependencies = [
620
637
  "proc-macro2",
621
638
  "quote",
@@ -685,18 +702,38 @@ dependencies = [
685
702
 
686
703
  [[package]]
687
704
  name = "thiserror"
688
- version = "2.0.11"
705
+ version = "1.0.69"
706
+ source = "registry+https://github.com/rust-lang/crates.io-index"
707
+ checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
708
+ dependencies = [
709
+ "thiserror-impl 1.0.69",
710
+ ]
711
+
712
+ [[package]]
713
+ name = "thiserror"
714
+ version = "2.0.12"
715
+ source = "registry+https://github.com/rust-lang/crates.io-index"
716
+ checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
717
+ dependencies = [
718
+ "thiserror-impl 2.0.12",
719
+ ]
720
+
721
+ [[package]]
722
+ name = "thiserror-impl"
723
+ version = "1.0.69"
689
724
  source = "registry+https://github.com/rust-lang/crates.io-index"
690
- checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc"
725
+ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
691
726
  dependencies = [
692
- "thiserror-impl",
727
+ "proc-macro2",
728
+ "quote",
729
+ "syn 2.0.98",
693
730
  ]
694
731
 
695
732
  [[package]]
696
733
  name = "thiserror-impl"
697
- version = "2.0.11"
734
+ version = "2.0.12"
698
735
  source = "registry+https://github.com/rust-lang/crates.io-index"
699
- checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2"
736
+ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
700
737
  dependencies = [
701
738
  "proc-macro2",
702
739
  "quote",
@@ -720,10 +757,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
720
757
  checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21"
721
758
  dependencies = [
722
759
  "deranged",
760
+ "itoa",
723
761
  "num-conv",
724
762
  "powerfmt",
725
763
  "serde",
726
764
  "time-core",
765
+ "time-macros",
727
766
  ]
728
767
 
729
768
  [[package]]
@@ -732,6 +771,16 @@ version = "0.1.2"
732
771
  source = "registry+https://github.com/rust-lang/crates.io-index"
733
772
  checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
734
773
 
774
+ [[package]]
775
+ name = "time-macros"
776
+ version = "0.2.19"
777
+ source = "registry+https://github.com/rust-lang/crates.io-index"
778
+ checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de"
779
+ dependencies = [
780
+ "num-conv",
781
+ "time-core",
782
+ ]
783
+
735
784
  [[package]]
736
785
  name = "tracing"
737
786
  version = "0.1.41"
@@ -743,6 +792,18 @@ dependencies = [
743
792
  "tracing-core",
744
793
  ]
745
794
 
795
+ [[package]]
796
+ name = "tracing-appender"
797
+ version = "0.2.3"
798
+ source = "registry+https://github.com/rust-lang/crates.io-index"
799
+ checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf"
800
+ dependencies = [
801
+ "crossbeam-channel",
802
+ "thiserror 1.0.69",
803
+ "time",
804
+ "tracing-subscriber",
805
+ ]
806
+
746
807
  [[package]]
747
808
  name = "tracing-attributes"
748
809
  version = "0.1.28"
data/README.md CHANGED
@@ -1,3 +1,8 @@
1
+ ---
2
+ title: Itsi Scheduler
3
+ type: docs
4
+ ---
5
+
1
6
  # ItsiScheduler
2
7
 
3
8
  TODO: Delete this and the text below, and describe your gem
data/_index.md ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: "Itsi Scheduler"
3
+ type: docs
4
+ hide: true
5
+ ---
6
+
7
+ ## Foo
@@ -1,5 +1,12 @@
1
+ use magnus::{
2
+ Error,
3
+ error::ErrorType,
4
+ exception::{self, arg_error, exception},
5
+ };
6
+ use nix::errno::Errno;
7
+
1
8
  use crate::ItsiError;
2
- use std::ffi::NulError;
9
+ use std::{ffi::NulError, io};
3
10
 
4
11
  pub static CLIENT_CONNECTION_CLOSED: &str = "Client disconnected";
5
12
 
@@ -9,14 +16,14 @@ impl From<httparse::Error> for ItsiError {
9
16
  }
10
17
  }
11
18
 
12
- impl From<nix::errno::Errno> for ItsiError {
13
- fn from(err: nix::errno::Errno) -> Self {
19
+ impl From<Errno> for ItsiError {
20
+ fn from(err: Errno) -> Self {
14
21
  ItsiError::ArgumentError(err.to_string())
15
22
  }
16
23
  }
17
24
 
18
- impl From<std::io::Error> for ItsiError {
19
- fn from(err: std::io::Error) -> Self {
25
+ impl From<io::Error> for ItsiError {
26
+ fn from(err: io::Error) -> Self {
20
27
  ItsiError::ArgumentError(err.to_string())
21
28
  }
22
29
  }
@@ -33,39 +40,29 @@ impl From<NulError> for ItsiError {
33
40
  }
34
41
  }
35
42
 
36
- impl From<magnus::Error> for ItsiError {
37
- fn from(err: magnus::Error) -> Self {
43
+ impl From<Error> for ItsiError {
44
+ fn from(err: Error) -> Self {
38
45
  match err.error_type() {
39
- magnus::error::ErrorType::Jump(tag) => ItsiError::Jump(tag.to_string()),
40
- magnus::error::ErrorType::Error(_exception_class, cow) => {
41
- ItsiError::ArgumentError(cow.to_string())
42
- }
43
- magnus::error::ErrorType::Exception(exception) => {
44
- ItsiError::ArgumentError(exception.to_string())
45
- }
46
+ ErrorType::Jump(tag) => ItsiError::Jump(tag.to_string()),
47
+ ErrorType::Error(_exception_class, cow) => ItsiError::ArgumentError(cow.to_string()),
48
+ ErrorType::Exception(exception) => ItsiError::ArgumentError(exception.to_string()),
46
49
  }
47
50
  }
48
51
  }
49
52
 
50
- impl From<ItsiError> for magnus::Error {
53
+ impl From<ItsiError> for Error {
51
54
  fn from(err: ItsiError) -> Self {
52
55
  match err {
53
- ItsiError::InvalidInput(msg) => magnus::Error::new(magnus::exception::arg_error(), msg),
54
- ItsiError::InternalServerError(msg) => {
55
- magnus::Error::new(magnus::exception::exception(), msg)
56
- }
57
- ItsiError::UnsupportedProtocol(msg) => {
58
- magnus::Error::new(magnus::exception::arg_error(), msg)
59
- }
60
- ItsiError::ArgumentError(msg) => {
61
- magnus::Error::new(magnus::exception::arg_error(), msg)
62
- }
63
- ItsiError::Jump(msg) => magnus::Error::new(magnus::exception::local_jump_error(), msg),
64
- ItsiError::Break() => magnus::Error::new(magnus::exception::interrupt(), "Break"),
56
+ ItsiError::InvalidInput(msg) => Error::new(arg_error(), msg),
57
+ ItsiError::InternalServerError(msg) => Error::new(exception(), msg),
58
+ ItsiError::UnsupportedProtocol(msg) => Error::new(arg_error(), msg),
59
+ ItsiError::ArgumentError(msg) => Error::new(arg_error(), msg),
60
+ ItsiError::Jump(msg) => Error::new(exception::local_jump_error(), msg),
61
+ ItsiError::Break() => Error::new(exception::interrupt(), "Break"),
65
62
  ItsiError::ClientConnectionClosed => {
66
- magnus::Error::new(magnus::exception::eof_error(), CLIENT_CONNECTION_CLOSED)
63
+ Error::new(exception::eof_error(), CLIENT_CONNECTION_CLOSED)
67
64
  }
68
- ItsiError::Pass() => magnus::Error::new(magnus::exception::interrupt(), "Pass"),
65
+ ItsiError::Pass() => Error::new(exception::interrupt(), "Pass"),
69
66
  }
70
67
  }
71
68
  }
@@ -3,7 +3,7 @@ use thiserror::Error;
3
3
 
4
4
  pub type Result<T> = std::result::Result<T, ItsiError>;
5
5
 
6
- #[derive(Error, Debug)]
6
+ #[derive(Error, Debug, Clone)]
7
7
  pub enum ItsiError {
8
8
  #[error("Invalid input {0}")]
9
9
  InvalidInput(String),
@@ -22,3 +22,12 @@ pub enum ItsiError {
22
22
  #[error("Pass")]
23
23
  Pass(),
24
24
  }
25
+
26
+ impl ItsiError {
27
+ pub fn default(error: impl Send + Sync + 'static + std::fmt::Display) -> Self {
28
+ ItsiError::InvalidInput(format!("{}", error))
29
+ }
30
+ }
31
+
32
+ unsafe impl Send for ItsiError {}
33
+ unsafe impl Sync for ItsiError {}