1#[derive(Debug)]
15pub struct JpRule {
16 pub hs_code: &'static str,
18
19 pub jp_code: &'static str,
24
25 pub jp_description: &'static str,
27
28 pub tariff_rate: Option<&'static str>,
31}
32
33pub const JP_TARIFF_YEAR: u16 = 2026;
35
36pub static JP_RULES: &[JpRule] = &[
40 JpRule {
44 hs_code: "250100",
45 jp_code: "250100000",
46 jp_description: "塩化ナトリウム(食塩等)",
47 tariff_rate: Some("free"),
48 },
49
50 JpRule {
54 hs_code: "280110",
55 jp_code: "280110000",
56 jp_description: "塩素",
57 tariff_rate: Some("free"),
58 },
59 JpRule {
60 hs_code: "280130",
61 jp_code: "280130000",
62 jp_description: "臭素",
63 tariff_rate: Some("free"),
64 },
65 JpRule {
66 hs_code: "280610",
67 jp_code: "280610000",
68 jp_description: "塩化水素(塩酸)",
69 tariff_rate: Some("free"),
70 },
71 JpRule {
72 hs_code: "280700",
73 jp_code: "280700000",
74 jp_description: "硫酸;発煙硫酸",
75 tariff_rate: Some("free"),
76 },
77 JpRule {
78 hs_code: "280800",
79 jp_code: "280800000",
80 jp_description: "硝酸;混酸",
81 tariff_rate: Some("free"),
82 },
83 JpRule {
84 hs_code: "280810",
85 jp_code: "280810000",
86 jp_description: "発煙硝酸",
87 tariff_rate: Some("free"),
88 },
89 JpRule {
90 hs_code: "280890",
91 jp_code: "280890000",
92 jp_description: "硝酸(その他)",
93 tariff_rate: Some("free"),
94 },
95 JpRule {
96 hs_code: "280920",
97 jp_code: "280920000",
98 jp_description: "リン酸及びポリリン酸",
99 tariff_rate: Some("free"),
100 },
101 JpRule {
102 hs_code: "281000",
103 jp_code: "281000000",
104 jp_description: "ホウ素の酸化物;ホウ酸",
105 tariff_rate: Some("free"),
106 },
107 JpRule {
108 hs_code: "281111",
109 jp_code: "281111000",
110 jp_description: "フッ化水素(フッ酸)",
111 tariff_rate: Some("free"),
112 },
113 JpRule {
114 hs_code: "281122",
115 jp_code: "281122000",
116 jp_description: "二酸化ケイ素(合成)",
117 tariff_rate: Some("free"),
118 },
119 JpRule {
120 hs_code: "281400",
121 jp_code: "281400000",
122 jp_description: "アンモニア(無水又は水溶液)",
123 tariff_rate: Some("free"),
124 },
125 JpRule {
126 hs_code: "281410",
127 jp_code: "281410000",
128 jp_description: "アンモニア(無水)",
129 tariff_rate: Some("free"),
130 },
131 JpRule {
132 hs_code: "281420",
133 jp_code: "281420000",
134 jp_description: "アンモニア水",
135 tariff_rate: Some("free"),
136 },
137 JpRule {
138 hs_code: "281511",
139 jp_code: "281511000",
140 jp_description: "水酸化ナトリウム(固体)",
141 tariff_rate: Some("free"),
142 },
143 JpRule {
144 hs_code: "281512",
145 jp_code: "281512000",
146 jp_description: "水酸化ナトリウム水溶液(苛性ソーダ液)",
147 tariff_rate: Some("free"),
148 },
149 JpRule {
150 hs_code: "281520",
151 jp_code: "281520000",
152 jp_description: "水酸化カリウム(苛性カリ)",
153 tariff_rate: Some("free"),
154 },
155 JpRule {
156 hs_code: "281600",
157 jp_code: "281600000",
158 jp_description: "酸化亜鉛;過酸化亜鉛",
159 tariff_rate: Some("free"),
160 },
161 JpRule {
162 hs_code: "281700",
163 jp_code: "281700000",
164 jp_description: "酸化亜鉛;過酸化亜鉛",
165 tariff_rate: Some("free"),
166 },
167 JpRule {
168 hs_code: "281820",
169 jp_code: "281820000",
170 jp_description: "酸化アルミニウム(人造コランダム以外)",
171 tariff_rate: Some("free"),
172 },
173 JpRule {
174 hs_code: "281910",
175 jp_code: "281910000",
176 jp_description: "三酸化クロム",
177 tariff_rate: Some("free"),
178 },
179 JpRule {
180 hs_code: "282010",
181 jp_code: "282010000",
182 jp_description: "二酸化マンガン",
183 tariff_rate: Some("free"),
184 },
185 JpRule {
186 hs_code: "282110",
187 jp_code: "282110000",
188 jp_description: "鉄の酸化物及び水酸化物",
189 tariff_rate: Some("free"),
190 },
191 JpRule {
192 hs_code: "282200",
193 jp_code: "282200000",
194 jp_description: "鉄のコバルト酸化物;コバルト酸化物",
195 tariff_rate: Some("free"),
196 },
197 JpRule {
198 hs_code: "282300",
199 jp_code: "282300000",
200 jp_description: "チタンの酸化物",
201 tariff_rate: Some("free"),
202 },
203 JpRule {
204 hs_code: "282520",
205 jp_code: "282520000",
206 jp_description: "水酸化カルシウム",
207 tariff_rate: Some("free"),
208 },
209 JpRule {
210 hs_code: "282720",
211 jp_code: "282720000",
212 jp_description: "塩化カルシウム",
213 tariff_rate: Some("free"),
214 },
215 JpRule {
216 hs_code: "282739",
217 jp_code: "282739000",
218 jp_description: "その他の金属の塩化物(塩化第二鉄等)",
219 tariff_rate: Some("free"),
220 },
221 JpRule {
222 hs_code: "282741",
223 jp_code: "282741000",
224 jp_description: "塩化亜鉛",
225 tariff_rate: Some("free"),
226 },
227 JpRule {
228 hs_code: "282810",
229 jp_code: "282810000",
230 jp_description: "次亜塩素酸ナトリウム",
231 tariff_rate: Some("free"),
232 },
233 JpRule {
234 hs_code: "283010",
235 jp_code: "283010000",
236 jp_description: "硫化ナトリウム",
237 tariff_rate: Some("free"),
238 },
239 JpRule {
240 hs_code: "283110",
241 jp_code: "283110000",
242 jp_description: "塩化カリウム",
243 tariff_rate: Some("free"),
244 },
245 JpRule {
246 hs_code: "283311",
247 jp_code: "283311000",
248 jp_description: "硫酸二ナトリウム",
249 tariff_rate: Some("free"),
250 },
251 JpRule {
252 hs_code: "283322",
253 jp_code: "283322000",
254 jp_description: "硫酸アルミニウム",
255 tariff_rate: Some("free"),
256 },
257 JpRule {
258 hs_code: "283325",
259 jp_code: "283325000",
260 jp_description: "硫酸銅",
261 tariff_rate: Some("free"),
262 },
263 JpRule {
264 hs_code: "283329",
265 jp_code: "283329000",
266 jp_description: "その他の硫酸塩(硫酸亜鉛等)",
267 tariff_rate: Some("free"),
268 },
269 JpRule {
270 hs_code: "283410",
271 jp_code: "283410000",
272 jp_description: "硝酸カリウム",
273 tariff_rate: Some("free"),
274 },
275 JpRule {
276 hs_code: "283421",
277 jp_code: "283421000",
278 jp_description: "硝酸ナトリウム",
279 tariff_rate: Some("free"),
280 },
281 JpRule {
282 hs_code: "283530",
283 jp_code: "283530000",
284 jp_description: "リン酸ナトリウム(三リン酸ナトリウム等)",
285 tariff_rate: Some("free"),
286 },
287 JpRule {
288 hs_code: "283531",
289 jp_code: "283531000",
290 jp_description: "三リン酸ナトリウム(トリポリリン酸ナトリウム)",
291 tariff_rate: Some("free"),
292 },
293 JpRule {
294 hs_code: "283620",
295 jp_code: "283620000",
296 jp_description: "炭酸ナトリウム",
297 tariff_rate: Some("free"),
298 },
299 JpRule {
300 hs_code: "283630",
301 jp_code: "283630000",
302 jp_description: "炭酸水素ナトリウム",
303 tariff_rate: Some("free"),
304 },
305 JpRule {
306 hs_code: "283640",
307 jp_code: "283640000",
308 jp_description: "炭酸カリウム",
309 tariff_rate: Some("free"),
310 },
311 JpRule {
312 hs_code: "283650",
313 jp_code: "283650000",
314 jp_description: "炭酸カルシウム",
315 tariff_rate: Some("free"),
316 },
317 JpRule {
318 hs_code: "283911",
319 jp_code: "283911000",
320 jp_description: "ケイ酸ナトリウム(メタケイ酸ナトリウム等)",
321 tariff_rate: Some("free"),
322 },
323 JpRule {
324 hs_code: "284130",
325 jp_code: "284130000",
326 jp_description: "過マンガン酸カリウム",
327 tariff_rate: Some("free"),
328 },
329 JpRule {
330 hs_code: "284321",
331 jp_code: "284321000",
332 jp_description: "硝酸銀",
333 tariff_rate: Some("free"),
334 },
335 JpRule {
336 hs_code: "284700",
337 jp_code: "284700000",
338 jp_description: "過酸化水素",
339 tariff_rate: Some("free"),
340 },
341
342 JpRule {
346 hs_code: "290110",
347 jp_code: "290110000",
348 jp_description: "飽和非環式炭化水素(ヘキサン等)",
349 tariff_rate: Some("free"),
350 },
351 JpRule {
352 hs_code: "290211",
353 jp_code: "290211000",
354 jp_description: "シクロヘキサン",
355 tariff_rate: Some("free"),
356 },
357 JpRule {
358 hs_code: "290220",
359 jp_code: "290220000",
360 jp_description: "ベンゼン",
361 tariff_rate: Some("free"),
362 },
363 JpRule {
364 hs_code: "290230",
365 jp_code: "290230000",
366 jp_description: "トルエン",
367 tariff_rate: Some("free"),
368 },
369 JpRule {
370 hs_code: "290244",
371 jp_code: "290244000",
372 jp_description: "混合キシレン異性体",
373 tariff_rate: Some("free"),
374 },
375 JpRule {
376 hs_code: "290312",
377 jp_code: "290312000",
378 jp_description: "ジクロロメタン(塩化メチレン)",
379 tariff_rate: Some("free"),
380 },
381 JpRule {
382 hs_code: "290313",
383 jp_code: "290313000",
384 jp_description: "クロロホルム(トリクロロメタン)",
385 tariff_rate: Some("free"),
386 },
387 JpRule {
388 hs_code: "290314",
389 jp_code: "290314000",
390 jp_description: "四塩化炭素",
391 tariff_rate: Some("free"),
392 },
393 JpRule {
394 hs_code: "290511",
395 jp_code: "290511000",
396 jp_description: "メタノール(メチルアルコール)",
397 tariff_rate: Some("free"),
398 },
399 JpRule {
400 hs_code: "290512",
401 jp_code: "290512000",
402 jp_description: "プロパン-1-オール(プロピルアルコール)",
403 tariff_rate: Some("free"),
404 },
405 JpRule {
406 hs_code: "290513",
407 jp_code: "290513000",
408 jp_description: "ブタン-1-オール(n-ブチルアルコール)",
409 tariff_rate: Some("free"),
410 },
411 JpRule {
412 hs_code: "290531",
413 jp_code: "290531000",
414 jp_description: "エチレングリコール(エタンジオール)",
415 tariff_rate: Some("free"),
416 },
417 JpRule {
418 hs_code: "290532",
419 jp_code: "290532000",
420 jp_description: "プロピレングリコール(1,2-プロパンジオール)",
421 tariff_rate: Some("free"),
422 },
423 JpRule {
424 hs_code: "290911",
425 jp_code: "290911000",
426 jp_description: "ジエチルエーテル",
427 tariff_rate: Some("free"),
428 },
429 JpRule {
430 hs_code: "291010",
431 jp_code: "291010000",
432 jp_description: "エチレンオキサイド(酸化エチレン)",
433 tariff_rate: Some("free"),
434 },
435 JpRule {
436 hs_code: "291211",
437 jp_code: "291211000",
438 jp_description: "ホルムアルデヒド(ホルマリン)",
439 tariff_rate: Some("free"),
440 },
441 JpRule {
442 hs_code: "291411",
443 jp_code: "291411000",
444 jp_description: "アセトン",
445 tariff_rate: Some("free"),
446 },
447 JpRule {
448 hs_code: "291511",
449 jp_code: "291511000",
450 jp_description: "ギ酸",
451 tariff_rate: Some("free"),
452 },
453 JpRule {
454 hs_code: "291521",
455 jp_code: "291521000",
456 jp_description: "酢酸",
457 tariff_rate: Some("free"),
458 },
459 JpRule {
460 hs_code: "291523",
461 jp_code: "291523000",
462 jp_description: "酢酸エチル",
463 tariff_rate: Some("free"),
464 },
465 JpRule {
466 hs_code: "291529",
467 jp_code: "291529000",
468 jp_description: "酢酸塩(酢酸ナトリウム等)",
469 tariff_rate: Some("free"),
470 },
471 JpRule {
472 hs_code: "291631",
473 jp_code: "291631000",
474 jp_description: "安息香酸、その塩及びエステル",
475 tariff_rate: Some("free"),
476 },
477 JpRule {
478 hs_code: "291711",
479 jp_code: "291711000",
480 jp_description: "シュウ酸、その塩及びエステル",
481 tariff_rate: Some("free"),
482 },
483 JpRule {
484 hs_code: "291735",
485 jp_code: "291735000",
486 jp_description: "無水フタル酸",
487 tariff_rate: Some("free"),
488 },
489 JpRule {
490 hs_code: "291811",
491 jp_code: "291811000",
492 jp_description: "乳酸、その塩及びエステル",
493 tariff_rate: Some("free"),
494 },
495 JpRule {
496 hs_code: "291814",
497 jp_code: "291814000",
498 jp_description: "クエン酸",
499 tariff_rate: Some("free"),
500 },
501 JpRule {
502 hs_code: "292141",
503 jp_code: "292141000",
504 jp_description: "アニリン",
505 tariff_rate: Some("free"),
506 },
507 JpRule {
508 hs_code: "292419",
509 jp_code: "292419000",
510 jp_description: "その他の非環式アミド(DMF等)",
511 tariff_rate: Some("free"),
512 },
513 JpRule {
514 hs_code: "290711",
515 jp_code: "290711000",
516 jp_description: "フェノール",
517 tariff_rate: Some("free"),
518 },
519 JpRule {
520 hs_code: "293090",
521 jp_code: "293090000",
522 jp_description: "その他の有機硫黄化合物(DMSO等)",
523 tariff_rate: Some("free"),
524 },
525
526 JpRule {
530 hs_code: "310210",
531 jp_code: "310210000",
532 jp_description: "尿素",
533 tariff_rate: Some("free"),
534 },
535 JpRule {
536 hs_code: "310230",
537 jp_code: "310230000",
538 jp_description: "硝酸アンモニウム",
539 tariff_rate: Some("free"),
540 },
541
542 JpRule {
546 hs_code: "720310",
547 jp_code: "720310000",
548 jp_description: "直接還元鉄鉱石で得た鉄製品",
549 tariff_rate: Some("free"),
550 },
551 JpRule {
552 hs_code: "740311",
553 jp_code: "740311000",
554 jp_description: "精製銅(カソード等)",
555 tariff_rate: Some("free"),
556 },
557 JpRule {
558 hs_code: "750110",
559 jp_code: "750110000",
560 jp_description: "ニッケル(未加工、合金でないもの)",
561 tariff_rate: Some("free"),
562 },
563 JpRule {
564 hs_code: "760110",
565 jp_code: "760110000",
566 jp_description: "アルミニウム(未加工、合金でないもの)",
567 tariff_rate: Some("free"),
568 },
569 JpRule {
570 hs_code: "760310",
571 jp_code: "760310000",
572 jp_description: "アルミニウム粉末(非板状構造)",
573 tariff_rate: Some("free"),
574 },
575 JpRule {
576 hs_code: "760711",
577 jp_code: "760711000",
578 jp_description: "アルミニウム箔(裏打ちなし)",
579 tariff_rate: Some("free"),
580 },
581 JpRule {
582 hs_code: "780110",
583 jp_code: "780110000",
584 jp_description: "精製鉛(未加工)",
585 tariff_rate: Some("free"),
586 },
587 JpRule {
588 hs_code: "790111",
589 jp_code: "790111000",
590 jp_description: "亜鉛(未加工、純度≥99.99%)",
591 tariff_rate: Some("free"),
592 },
593 JpRule {
594 hs_code: "800110",
595 jp_code: "800110000",
596 jp_description: "スズ(未加工、合金でないもの)",
597 tariff_rate: Some("free"),
598 },
599
600 JpRule {
604 hs_code: "710691",
605 jp_code: "710691000",
606 jp_description: "銀(未加工)",
607 tariff_rate: Some("free"),
608 },
609 JpRule {
610 hs_code: "710812",
611 jp_code: "710812000",
612 jp_description: "金(非貨幣用、未加工)",
613 tariff_rate: Some("free"),
614 },
615
616 JpRule {
620 hs_code: "220710",
621 jp_code: "220710000",
622 jp_description: "変性していないエチルアルコール(アルコール分≥80%)",
623 tariff_rate: None, },
625];
626
627pub fn find_jp_rule(hs_code: &str) -> Option<&'static JpRule> {
631 JP_RULES.iter().find(|r| r.hs_code == hs_code)
632}
633
634#[cfg(test)]
635mod tests {
636 use super::*;
637
638 #[test]
639 fn naoh_solid_has_jp_code() {
640 let rule = find_jp_rule("281511").unwrap();
641 assert_eq!(rule.jp_code, "281511000");
642 assert_eq!(rule.tariff_rate, Some("free"));
643 }
644
645 #[test]
646 fn acetone_has_jp_code() {
647 let rule = find_jp_rule("291411").unwrap();
648 assert_eq!(rule.jp_code, "291411000");
649 }
650
651 #[test]
652 fn unknown_hs_returns_none() {
653 assert!(find_jp_rule("999999").is_none());
654 }
655
656 #[test]
657 fn tariff_year_is_2026() {
658 assert_eq!(JP_TARIFF_YEAR, 2026);
659 }
660}