shirobai 2026.0620.0542

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 (148) hide show
  1. checksums.yaml +7 -0
  2. data/Cargo.lock +420 -0
  3. data/Cargo.toml +13 -0
  4. data/LICENSE.txt +21 -0
  5. data/crates/shirobai-core/Cargo.toml +20 -0
  6. data/crates/shirobai-core/src/bin/analysis_profile.rs +447 -0
  7. data/crates/shirobai-core/src/bin/hotspot_profile.rs +596 -0
  8. data/crates/shirobai-core/src/bin/walk_profile.rs +191 -0
  9. data/crates/shirobai-core/src/lib.rs +1 -0
  10. data/crates/shirobai-core/src/rules/abc_size.rs +1467 -0
  11. data/crates/shirobai-core/src/rules/access_modifier_indentation.rs +441 -0
  12. data/crates/shirobai-core/src/rules/ambiguous_block_association.rs +521 -0
  13. data/crates/shirobai-core/src/rules/argument_alignment.rs +293 -0
  14. data/crates/shirobai-core/src/rules/assignment_indentation.rs +502 -0
  15. data/crates/shirobai-core/src/rules/block_alignment.rs +774 -0
  16. data/crates/shirobai-core/src/rules/block_delimiters.rs +1854 -0
  17. data/crates/shirobai-core/src/rules/block_length.rs +584 -0
  18. data/crates/shirobai-core/src/rules/block_nesting.rs +390 -0
  19. data/crates/shirobai-core/src/rules/bundle.rs +2632 -0
  20. data/crates/shirobai-core/src/rules/closing_parenthesis_indentation.rs +418 -0
  21. data/crates/shirobai-core/src/rules/code_length.rs +605 -0
  22. data/crates/shirobai-core/src/rules/colon_method_call.rs +271 -0
  23. data/crates/shirobai-core/src/rules/complexity.rs +577 -0
  24. data/crates/shirobai-core/src/rules/debugger.rs +438 -0
  25. data/crates/shirobai-core/src/rules/def_end_alignment.rs +485 -0
  26. data/crates/shirobai-core/src/rules/dispatch.rs +92 -0
  27. data/crates/shirobai-core/src/rules/dot_position.rs +269 -0
  28. data/crates/shirobai-core/src/rules/else_alignment.rs +837 -0
  29. data/crates/shirobai-core/src/rules/empty_line_between_defs.rs +731 -0
  30. data/crates/shirobai-core/src/rules/empty_lines_around_arguments.rs +291 -0
  31. data/crates/shirobai-core/src/rules/empty_lines_around_body.rs +1313 -0
  32. data/crates/shirobai-core/src/rules/end_alignment.rs +798 -0
  33. data/crates/shirobai-core/src/rules/first_argument_indentation.rs +643 -0
  34. data/crates/shirobai-core/src/rules/first_array_element_indentation.rs +644 -0
  35. data/crates/shirobai-core/src/rules/first_hash_element_indentation.rs +699 -0
  36. data/crates/shirobai-core/src/rules/hash_alignment.rs +1030 -0
  37. data/crates/shirobai-core/src/rules/hash_each_methods.rs +737 -0
  38. data/crates/shirobai-core/src/rules/hash_syntax.rs +1304 -0
  39. data/crates/shirobai-core/src/rules/hash_transform_keys.rs +902 -0
  40. data/crates/shirobai-core/src/rules/indentation_consistency.rs +585 -0
  41. data/crates/shirobai-core/src/rules/indentation_width.rs +1231 -0
  42. data/crates/shirobai-core/src/rules/line_end_concatenation.rs +323 -0
  43. data/crates/shirobai-core/src/rules/line_index.rs +227 -0
  44. data/crates/shirobai-core/src/rules/line_length.rs +426 -0
  45. data/crates/shirobai-core/src/rules/line_length_breakable.rs +1454 -0
  46. data/crates/shirobai-core/src/rules/method_length.rs +403 -0
  47. data/crates/shirobai-core/src/rules/method_name.rs +565 -0
  48. data/crates/shirobai-core/src/rules/mod.rs +63 -0
  49. data/crates/shirobai-core/src/rules/multiline_method_call_brace_layout.rs +594 -0
  50. data/crates/shirobai-core/src/rules/multiline_method_call_indentation.rs +1444 -0
  51. data/crates/shirobai-core/src/rules/multiline_operation_indentation.rs +679 -0
  52. data/crates/shirobai-core/src/rules/nested_parenthesized_calls.rs +479 -0
  53. data/crates/shirobai-core/src/rules/parentheses_as_grouped_expression.rs +403 -0
  54. data/crates/shirobai-core/src/rules/parse_cache.rs +66 -0
  55. data/crates/shirobai-core/src/rules/percent_literal_delimiters.rs +826 -0
  56. data/crates/shirobai-core/src/rules/predicate_prefix.rs +397 -0
  57. data/crates/shirobai-core/src/rules/redundant_self.rs +691 -0
  58. data/crates/shirobai-core/src/rules/redundant_self_assignment.rs +522 -0
  59. data/crates/shirobai-core/src/rules/require_parentheses.rs +230 -0
  60. data/crates/shirobai-core/src/rules/safe_navigation_chain.rs +360 -0
  61. data/crates/shirobai-core/src/rules/self_assignment.rs +721 -0
  62. data/crates/shirobai-core/src/rules/space_around_keyword.rs +881 -0
  63. data/crates/shirobai-core/src/rules/space_around_method_call_operator.rs +389 -0
  64. data/crates/shirobai-core/src/rules/space_inside_block_braces.rs +628 -0
  65. data/crates/shirobai-core/src/rules/stabby_lambda_parentheses.rs +319 -0
  66. data/crates/shirobai-core/src/rules/string_literals.rs +611 -0
  67. data/crates/shirobai-core/src/rules/string_literals_in_interpolation.rs +244 -0
  68. data/crates/shirobai-core/src/rules/trailing_comma_in_arguments.rs +673 -0
  69. data/crates/shirobai-core/src/rules/trailing_empty_lines.rs +307 -0
  70. data/crates/shirobai-core/src/rules/unreachable_code.rs +719 -0
  71. data/crates/shirobai-core/src/rules/useless_access_modifier.rs +1087 -0
  72. data/crates/shirobai-core/src/rules/variable_number.rs +310 -0
  73. data/crates/shirobai-core/src/rules/void.rs +1328 -0
  74. data/ext/shirobai/Cargo.toml +13 -0
  75. data/ext/shirobai/src/lib.rs +2625 -0
  76. data/lib/shirobai/cop/base.rb +18 -0
  77. data/lib/shirobai/cop/layout/access_modifier_indentation.rb +117 -0
  78. data/lib/shirobai/cop/layout/argument_alignment.rb +86 -0
  79. data/lib/shirobai/cop/layout/assignment_indentation.rb +73 -0
  80. data/lib/shirobai/cop/layout/block_alignment.rb +79 -0
  81. data/lib/shirobai/cop/layout/closing_parenthesis_indentation.rb +51 -0
  82. data/lib/shirobai/cop/layout/def_end_alignment.rb +114 -0
  83. data/lib/shirobai/cop/layout/dot_position.rb +63 -0
  84. data/lib/shirobai/cop/layout/else_alignment.rb +86 -0
  85. data/lib/shirobai/cop/layout/empty_line_between_defs.rb +78 -0
  86. data/lib/shirobai/cop/layout/empty_lines_around_arguments.rb +55 -0
  87. data/lib/shirobai/cop/layout/empty_lines_around_begin_body.rb +22 -0
  88. data/lib/shirobai/cop/layout/empty_lines_around_block_body.rb +28 -0
  89. data/lib/shirobai/cop/layout/empty_lines_around_body_shared.rb +58 -0
  90. data/lib/shirobai/cop/layout/empty_lines_around_class_body.rb +27 -0
  91. data/lib/shirobai/cop/layout/empty_lines_around_exception_handling_keywords.rb +24 -0
  92. data/lib/shirobai/cop/layout/empty_lines_around_method_body.rb +22 -0
  93. data/lib/shirobai/cop/layout/empty_lines_around_module_body.rb +26 -0
  94. data/lib/shirobai/cop/layout/end_alignment.rb +101 -0
  95. data/lib/shirobai/cop/layout/first_argument_indentation.rb +76 -0
  96. data/lib/shirobai/cop/layout/first_array_element_indentation.rb +89 -0
  97. data/lib/shirobai/cop/layout/first_hash_element_indentation.rb +104 -0
  98. data/lib/shirobai/cop/layout/hash_alignment.rb +135 -0
  99. data/lib/shirobai/cop/layout/indentation_consistency.rb +95 -0
  100. data/lib/shirobai/cop/layout/indentation_width.rb +141 -0
  101. data/lib/shirobai/cop/layout/line_length.rb +210 -0
  102. data/lib/shirobai/cop/layout/multiline_method_call_brace_layout.rb +126 -0
  103. data/lib/shirobai/cop/layout/multiline_method_call_indentation.rb +87 -0
  104. data/lib/shirobai/cop/layout/multiline_operation_indentation.rb +61 -0
  105. data/lib/shirobai/cop/layout/space_around_keyword.rb +69 -0
  106. data/lib/shirobai/cop/layout/space_around_method_call_operator.rb +55 -0
  107. data/lib/shirobai/cop/layout/space_inside_block_braces.rb +116 -0
  108. data/lib/shirobai/cop/layout/trailing_empty_lines.rb +113 -0
  109. data/lib/shirobai/cop/lint/ambiguous_block_association.rb +117 -0
  110. data/lib/shirobai/cop/lint/debugger.rb +44 -0
  111. data/lib/shirobai/cop/lint/parentheses_as_grouped_expression.rb +54 -0
  112. data/lib/shirobai/cop/lint/require_parentheses.rb +35 -0
  113. data/lib/shirobai/cop/lint/safe_navigation_chain.rb +52 -0
  114. data/lib/shirobai/cop/lint/self_assignment.rb +105 -0
  115. data/lib/shirobai/cop/lint/unreachable_code.rb +48 -0
  116. data/lib/shirobai/cop/lint/useless_access_modifier.rb +61 -0
  117. data/lib/shirobai/cop/lint/void.rb +60 -0
  118. data/lib/shirobai/cop/metrics/abc_size.rb +61 -0
  119. data/lib/shirobai/cop/metrics/block_length.rb +139 -0
  120. data/lib/shirobai/cop/metrics/block_nesting.rb +62 -0
  121. data/lib/shirobai/cop/metrics/complexity_base.rb +35 -0
  122. data/lib/shirobai/cop/metrics/complexity_shared.rb +45 -0
  123. data/lib/shirobai/cop/metrics/cyclomatic_complexity.rb +30 -0
  124. data/lib/shirobai/cop/metrics/method_length.rb +70 -0
  125. data/lib/shirobai/cop/metrics/perceived_complexity.rb +30 -0
  126. data/lib/shirobai/cop/naming/method_name.rb +100 -0
  127. data/lib/shirobai/cop/naming/predicate_prefix.rb +107 -0
  128. data/lib/shirobai/cop/naming/variable_number.rb +72 -0
  129. data/lib/shirobai/cop/style/block_delimiters.rb +164 -0
  130. data/lib/shirobai/cop/style/colon_method_call.rb +60 -0
  131. data/lib/shirobai/cop/style/hash_each_methods.rb +50 -0
  132. data/lib/shirobai/cop/style/hash_syntax.rb +147 -0
  133. data/lib/shirobai/cop/style/hash_transform_keys.rb +46 -0
  134. data/lib/shirobai/cop/style/line_end_concatenation.rb +42 -0
  135. data/lib/shirobai/cop/style/nested_parenthesized_calls.rb +88 -0
  136. data/lib/shirobai/cop/style/percent_literal_delimiters.rb +113 -0
  137. data/lib/shirobai/cop/style/redundant_self.rb +50 -0
  138. data/lib/shirobai/cop/style/redundant_self_assignment.rb +62 -0
  139. data/lib/shirobai/cop/style/stabby_lambda_parentheses.rb +75 -0
  140. data/lib/shirobai/cop/style/string_literals.rb +135 -0
  141. data/lib/shirobai/cop/style/string_literals_in_interpolation.rb +130 -0
  142. data/lib/shirobai/cop/style/trailing_comma_in_arguments.rb +127 -0
  143. data/lib/shirobai/dispatch.rb +222 -0
  144. data/lib/shirobai/inject.rb +92 -0
  145. data/lib/shirobai/source_offsets.rb +43 -0
  146. data/lib/shirobai/version.rb +5 -0
  147. data/lib/shirobai.rb +5 -0
  148. metadata +198 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 8ce8e07c22c090fab834893b91acc417261b0ba3ce12d71b55f5312a57ff869b
4
+ data.tar.gz: dbf76e524e00aa0a6a01e44d9d04f28ea96c3c88b12cb32fd6c413fe64232119
5
+ SHA512:
6
+ metadata.gz: 3d49001fadb2b51cf9d4b503f3342a18b9fda2d5eef768f99e93e40415881e2ebdc24aef2e18cd1624f5d3f48f174889c7d5fce2621ebb974958ee3d865830c3
7
+ data.tar.gz: 1734cb13d8899635a83ac14bdde60cc4c68d22a75c6ee80d86efc1739ef66bbb81a6538a4a7d2eba58f57469d727dd027c23c3064b76aa831a794642ea22e674
data/Cargo.lock ADDED
@@ -0,0 +1,420 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "aho-corasick"
7
+ version = "1.1.4"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
10
+ dependencies = [
11
+ "memchr",
12
+ ]
13
+
14
+ [[package]]
15
+ name = "bindgen"
16
+ version = "0.72.1"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895"
19
+ dependencies = [
20
+ "bitflags",
21
+ "cexpr",
22
+ "clang-sys",
23
+ "itertools",
24
+ "log",
25
+ "prettyplease",
26
+ "proc-macro2",
27
+ "quote",
28
+ "regex",
29
+ "rustc-hash",
30
+ "shlex 1.3.0",
31
+ "syn",
32
+ ]
33
+
34
+ [[package]]
35
+ name = "bitflags"
36
+ version = "2.13.0"
37
+ source = "registry+https://github.com/rust-lang/crates.io-index"
38
+ checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8"
39
+
40
+ [[package]]
41
+ name = "cc"
42
+ version = "1.2.63"
43
+ source = "registry+https://github.com/rust-lang/crates.io-index"
44
+ checksum = "556e016178bb5662a08681bbe0f00f8e17631781a4dfc8c45e466e4b185ec27f"
45
+ dependencies = [
46
+ "find-msvc-tools",
47
+ "shlex 2.0.1",
48
+ ]
49
+
50
+ [[package]]
51
+ name = "cexpr"
52
+ version = "0.6.0"
53
+ source = "registry+https://github.com/rust-lang/crates.io-index"
54
+ checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
55
+ dependencies = [
56
+ "nom",
57
+ ]
58
+
59
+ [[package]]
60
+ name = "cfg-if"
61
+ version = "1.0.4"
62
+ source = "registry+https://github.com/rust-lang/crates.io-index"
63
+ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
64
+
65
+ [[package]]
66
+ name = "clang-sys"
67
+ version = "1.8.1"
68
+ source = "registry+https://github.com/rust-lang/crates.io-index"
69
+ checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
70
+ dependencies = [
71
+ "glob",
72
+ "libc",
73
+ "libloading",
74
+ ]
75
+
76
+ [[package]]
77
+ name = "either"
78
+ version = "1.16.0"
79
+ source = "registry+https://github.com/rust-lang/crates.io-index"
80
+ checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e"
81
+
82
+ [[package]]
83
+ name = "find-msvc-tools"
84
+ version = "0.1.9"
85
+ source = "registry+https://github.com/rust-lang/crates.io-index"
86
+ checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
87
+
88
+ [[package]]
89
+ name = "glob"
90
+ version = "0.3.3"
91
+ source = "registry+https://github.com/rust-lang/crates.io-index"
92
+ checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
93
+
94
+ [[package]]
95
+ name = "itertools"
96
+ version = "0.13.0"
97
+ source = "registry+https://github.com/rust-lang/crates.io-index"
98
+ checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
99
+ dependencies = [
100
+ "either",
101
+ ]
102
+
103
+ [[package]]
104
+ name = "itoa"
105
+ version = "1.0.18"
106
+ source = "registry+https://github.com/rust-lang/crates.io-index"
107
+ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
108
+
109
+ [[package]]
110
+ name = "lazy_static"
111
+ version = "1.5.0"
112
+ source = "registry+https://github.com/rust-lang/crates.io-index"
113
+ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
114
+
115
+ [[package]]
116
+ name = "libc"
117
+ version = "0.2.186"
118
+ source = "registry+https://github.com/rust-lang/crates.io-index"
119
+ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
120
+
121
+ [[package]]
122
+ name = "libloading"
123
+ version = "0.8.9"
124
+ source = "registry+https://github.com/rust-lang/crates.io-index"
125
+ checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
126
+ dependencies = [
127
+ "cfg-if",
128
+ "windows-link",
129
+ ]
130
+
131
+ [[package]]
132
+ name = "log"
133
+ version = "0.4.32"
134
+ source = "registry+https://github.com/rust-lang/crates.io-index"
135
+ checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a"
136
+
137
+ [[package]]
138
+ name = "magnus"
139
+ version = "0.8.2"
140
+ source = "registry+https://github.com/rust-lang/crates.io-index"
141
+ checksum = "3b36a5b126bbe97eb0d02d07acfeb327036c6319fd816139a49824a83b7f9012"
142
+ dependencies = [
143
+ "magnus-macros",
144
+ "rb-sys",
145
+ "rb-sys-env",
146
+ "seq-macro",
147
+ ]
148
+
149
+ [[package]]
150
+ name = "magnus-macros"
151
+ version = "0.8.0"
152
+ source = "registry+https://github.com/rust-lang/crates.io-index"
153
+ checksum = "47607461fd8e1513cb4f2076c197d8092d921a1ea75bd08af97398f593751892"
154
+ dependencies = [
155
+ "proc-macro2",
156
+ "quote",
157
+ "syn",
158
+ ]
159
+
160
+ [[package]]
161
+ name = "memchr"
162
+ version = "2.8.1"
163
+ source = "registry+https://github.com/rust-lang/crates.io-index"
164
+ checksum = "6b947ae49db0d222b1dbc6b113ce7248a3fc3a6ca21b696717bfc000ba4484d8"
165
+
166
+ [[package]]
167
+ name = "minimal-lexical"
168
+ version = "0.2.1"
169
+ source = "registry+https://github.com/rust-lang/crates.io-index"
170
+ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
171
+
172
+ [[package]]
173
+ name = "nom"
174
+ version = "7.1.3"
175
+ source = "registry+https://github.com/rust-lang/crates.io-index"
176
+ checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
177
+ dependencies = [
178
+ "memchr",
179
+ "minimal-lexical",
180
+ ]
181
+
182
+ [[package]]
183
+ name = "prettyplease"
184
+ version = "0.2.37"
185
+ source = "registry+https://github.com/rust-lang/crates.io-index"
186
+ checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
187
+ dependencies = [
188
+ "proc-macro2",
189
+ "syn",
190
+ ]
191
+
192
+ [[package]]
193
+ name = "proc-macro2"
194
+ version = "1.0.106"
195
+ source = "registry+https://github.com/rust-lang/crates.io-index"
196
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
197
+ dependencies = [
198
+ "unicode-ident",
199
+ ]
200
+
201
+ [[package]]
202
+ name = "quote"
203
+ version = "1.0.45"
204
+ source = "registry+https://github.com/rust-lang/crates.io-index"
205
+ checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
206
+ dependencies = [
207
+ "proc-macro2",
208
+ ]
209
+
210
+ [[package]]
211
+ name = "rb-sys"
212
+ version = "0.9.128"
213
+ source = "registry+https://github.com/rust-lang/crates.io-index"
214
+ checksum = "45ca28513560e56cfb79a62b1fce363c73af170a182024ce880c77ee9429920a"
215
+ dependencies = [
216
+ "rb-sys-build",
217
+ ]
218
+
219
+ [[package]]
220
+ name = "rb-sys-build"
221
+ version = "0.9.128"
222
+ source = "registry+https://github.com/rust-lang/crates.io-index"
223
+ checksum = "ce04b2c55eff3a21aaa623fcc655d94373238e72cac6b3e1a3641ff31649f99a"
224
+ dependencies = [
225
+ "bindgen",
226
+ "lazy_static",
227
+ "proc-macro2",
228
+ "quote",
229
+ "regex",
230
+ "shell-words",
231
+ "syn",
232
+ ]
233
+
234
+ [[package]]
235
+ name = "rb-sys-env"
236
+ version = "0.2.3"
237
+ source = "registry+https://github.com/rust-lang/crates.io-index"
238
+ checksum = "cca7ad6a7e21e72151d56fe2495a259b5670e204c3adac41ee7ef676ea08117a"
239
+
240
+ [[package]]
241
+ name = "regex"
242
+ version = "1.12.3"
243
+ source = "registry+https://github.com/rust-lang/crates.io-index"
244
+ checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
245
+ dependencies = [
246
+ "aho-corasick",
247
+ "memchr",
248
+ "regex-automata",
249
+ "regex-syntax",
250
+ ]
251
+
252
+ [[package]]
253
+ name = "regex-automata"
254
+ version = "0.4.14"
255
+ source = "registry+https://github.com/rust-lang/crates.io-index"
256
+ checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
257
+ dependencies = [
258
+ "aho-corasick",
259
+ "memchr",
260
+ "regex-syntax",
261
+ ]
262
+
263
+ [[package]]
264
+ name = "regex-syntax"
265
+ version = "0.8.10"
266
+ source = "registry+https://github.com/rust-lang/crates.io-index"
267
+ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
268
+
269
+ [[package]]
270
+ name = "ruby-prism"
271
+ version = "1.9.0"
272
+ source = "registry+https://github.com/rust-lang/crates.io-index"
273
+ checksum = "3b302f00359d0b5423a600314935ca5f994484e15da2db5345631d28c6e029d6"
274
+ dependencies = [
275
+ "ruby-prism-sys",
276
+ "serde",
277
+ "serde_json",
278
+ ]
279
+
280
+ [[package]]
281
+ name = "ruby-prism-sys"
282
+ version = "1.9.0"
283
+ source = "registry+https://github.com/rust-lang/crates.io-index"
284
+ checksum = "9f85fd9571455bdca2b3bf0b2f543cd13ac39d5de0026a8eb2deb94ffd264f00"
285
+ dependencies = [
286
+ "bindgen",
287
+ "cc",
288
+ ]
289
+
290
+ [[package]]
291
+ name = "rustc-hash"
292
+ version = "2.1.2"
293
+ source = "registry+https://github.com/rust-lang/crates.io-index"
294
+ checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
295
+
296
+ [[package]]
297
+ name = "self_cell"
298
+ version = "1.2.2"
299
+ source = "registry+https://github.com/rust-lang/crates.io-index"
300
+ checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89"
301
+
302
+ [[package]]
303
+ name = "seq-macro"
304
+ version = "0.3.6"
305
+ source = "registry+https://github.com/rust-lang/crates.io-index"
306
+ checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc"
307
+
308
+ [[package]]
309
+ name = "serde"
310
+ version = "1.0.228"
311
+ source = "registry+https://github.com/rust-lang/crates.io-index"
312
+ checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
313
+ dependencies = [
314
+ "serde_core",
315
+ "serde_derive",
316
+ ]
317
+
318
+ [[package]]
319
+ name = "serde_core"
320
+ version = "1.0.228"
321
+ source = "registry+https://github.com/rust-lang/crates.io-index"
322
+ checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
323
+ dependencies = [
324
+ "serde_derive",
325
+ ]
326
+
327
+ [[package]]
328
+ name = "serde_derive"
329
+ version = "1.0.228"
330
+ source = "registry+https://github.com/rust-lang/crates.io-index"
331
+ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
332
+ dependencies = [
333
+ "proc-macro2",
334
+ "quote",
335
+ "syn",
336
+ ]
337
+
338
+ [[package]]
339
+ name = "serde_json"
340
+ version = "1.0.150"
341
+ source = "registry+https://github.com/rust-lang/crates.io-index"
342
+ checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
343
+ dependencies = [
344
+ "itoa",
345
+ "memchr",
346
+ "serde",
347
+ "serde_core",
348
+ "zmij",
349
+ ]
350
+
351
+ [[package]]
352
+ name = "shell-words"
353
+ version = "1.1.1"
354
+ source = "registry+https://github.com/rust-lang/crates.io-index"
355
+ checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77"
356
+
357
+ [[package]]
358
+ name = "shirobai-core"
359
+ version = "0.1.0"
360
+ dependencies = [
361
+ "libc",
362
+ "ruby-prism",
363
+ "self_cell",
364
+ "unicode-width",
365
+ ]
366
+
367
+ [[package]]
368
+ name = "shirobai-ext"
369
+ version = "0.1.0"
370
+ dependencies = [
371
+ "magnus",
372
+ "shirobai-core",
373
+ ]
374
+
375
+ [[package]]
376
+ name = "shlex"
377
+ version = "1.3.0"
378
+ source = "registry+https://github.com/rust-lang/crates.io-index"
379
+ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
380
+
381
+ [[package]]
382
+ name = "shlex"
383
+ version = "2.0.1"
384
+ source = "registry+https://github.com/rust-lang/crates.io-index"
385
+ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
386
+
387
+ [[package]]
388
+ name = "syn"
389
+ version = "2.0.117"
390
+ source = "registry+https://github.com/rust-lang/crates.io-index"
391
+ checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
392
+ dependencies = [
393
+ "proc-macro2",
394
+ "quote",
395
+ "unicode-ident",
396
+ ]
397
+
398
+ [[package]]
399
+ name = "unicode-ident"
400
+ version = "1.0.24"
401
+ source = "registry+https://github.com/rust-lang/crates.io-index"
402
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
403
+
404
+ [[package]]
405
+ name = "unicode-width"
406
+ version = "0.2.2"
407
+ source = "registry+https://github.com/rust-lang/crates.io-index"
408
+ checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
409
+
410
+ [[package]]
411
+ name = "windows-link"
412
+ version = "0.2.1"
413
+ source = "registry+https://github.com/rust-lang/crates.io-index"
414
+ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
415
+
416
+ [[package]]
417
+ name = "zmij"
418
+ version = "1.0.21"
419
+ source = "registry+https://github.com/rust-lang/crates.io-index"
420
+ checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
data/Cargo.toml ADDED
@@ -0,0 +1,13 @@
1
+ [workspace]
2
+ members = ["ext/shirobai", "crates/shirobai-core"]
3
+ resolver = "3"
4
+
5
+ # Release tuning. The hot path crosses crate boundaries (ext cdylib -> core
6
+ # check_* -> ruby-prism); without LTO the cross-crate calls are not inlined and
7
+ # codegen-units=16 (the release default) further fragments optimization. Fat LTO
8
+ # + a single codegen unit lets the whole graph optimize together. opt-level=3 is
9
+ # already the release default. panic is left at the default (unwind): magnus
10
+ # relies on unwinding to surface Ruby exceptions, so panic=abort is unsafe here.
11
+ [profile.release]
12
+ lto = "fat"
13
+ codegen-units = 1
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 fusagiko / takayamaki
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,20 @@
1
+ [package]
2
+ name = "shirobai-core"
3
+ version = "0.1.0"
4
+ edition = "2024"
5
+
6
+ [dependencies]
7
+ ruby-prism = "1.9.0"
8
+ self_cell = "1"
9
+ unicode-width = "0.2"
10
+
11
+ [target.'cfg(unix)'.dependencies]
12
+ libc = "0.2"
13
+
14
+ [[bin]]
15
+ name = "walk_profile"
16
+ path = "src/bin/walk_profile.rs"
17
+
18
+ [[bin]]
19
+ name = "analysis_profile"
20
+ path = "src/bin/analysis_profile.rs"