boring_parser/
boring_structs_110.rs

1use serde::{Deserialize, Serialize};
2use std::str;
3
4use crate::types::FreeInfo;
5
6#[derive(Debug, Serialize, Deserialize)]
7#[serde(rename = "ボーリング情報")]
8pub struct Boring110 {
9    #[serde(rename = "@DTD_version")]
10    pub dtd_version: Option<String>,
11    #[serde(rename = "標題情報")]
12    pub title: Title,
13    #[serde(rename = "コア情報")]
14    pub core: Core,
15}
16
17#[derive(Debug, Serialize, Deserialize)]
18pub struct Title {
19    #[serde(rename = "調査基本情報")]
20    pub basic_info: BasicSurvey,
21    #[serde(rename = "経度緯度情報")]
22    pub longitude_latitude: LngLat,
23    #[serde(default, rename = "ローカル座標")] // オプション
24    pub local_coordinate_definition: Option<LocalCoordinateDefinition>,
25    #[serde(rename = "調査位置")]
26    pub survey_position: SurveyPosition,
27    #[serde(rename = "発注機関")]
28    pub order_institution: OrderInstitution,
29    #[serde(rename = "調査期間")]
30    pub survey_period: SurveyPeriod,
31    #[serde(rename = "調査会社")]
32    pub survey_company: SurveyCompany,
33    #[serde(rename = "ボーリング基本情報")]
34    pub boring_basic_info: BoringBasicInfo,
35    #[serde(rename = "試錐機")]
36    pub drilling_machine: DrillingMachine,
37    #[serde(rename = "ハンマ落下用具")]
38    pub hammer_drop_tool: HammerDropTool,
39    #[serde(rename = "N値記録用具")]
40    pub n_value_recorder: NValueRecorder,
41    #[serde(rename = "エンジン")]
42    pub engine: Engine,
43    #[serde(rename = "ポンプ")]
44    pub pump: Pump,
45    #[serde(default, rename = "港湾局指定コード")] // オプション
46    pub port_authority_code: Option<PortAuthorityCode>,
47}
48
49#[derive(Debug, Serialize, Deserialize)]
50pub struct BasicSurvey {
51    #[serde(rename = "事業工事名")] // 必須
52    pub project_name: Option<String>,
53    #[serde(rename = "調査名")] // 必須
54    pub survey_name: Option<String>,
55    #[serde(rename = "調査目的")] // 必須
56    pub survey_purpose: Option<String>,
57    #[serde(rename = "調査対象")] // 必須
58    pub survey_target: Option<String>,
59    #[serde(rename = "ボーリング名")] // 必須
60    pub boring_name: Option<String>,
61    #[serde(rename = "ボーリング連番")] // 必須
62    pub boring_serial: Option<String>,
63    #[serde(rename = "ボーリング総数")] // 必須
64    pub total_boring: Option<String>,
65}
66
67#[derive(Debug, Serialize, Deserialize)]
68pub struct LngLat {
69    #[serde(rename = "経度_度")] // 必須
70    pub longitude_degree: Option<String>,
71    #[serde(rename = "経度_分")] // 必須
72    pub longitude_minute: Option<String>,
73    #[serde(rename = "経度_秒")] // 必須
74    pub longitude_second: Option<String>,
75    #[serde(rename = "緯度_度")] // 必須
76    pub latitude_degree: Option<String>,
77    #[serde(rename = "緯度_分")] // 必須
78    pub latitude_minute: Option<String>,
79    #[serde(rename = "緯度_秒")] // 必須
80    pub latitude_second: Option<String>,
81    #[serde(rename = "取得方法コード")] // 必須
82    pub acquisition_method_code: Option<String>,
83    #[serde(rename = "読取精度コード")] // 必須
84    pub reading_precision_code: Option<String>,
85    #[serde(rename = "測地系")] // 必須
86    pub geodetic_system: Option<String>,
87}
88
89#[derive(Debug, Serialize, Deserialize, PartialEq)]
90pub struct LocalCoordinateDefinition {
91    #[serde(rename = "X座標定義")] // 必須
92    pub x_definition: Option<String>,
93    #[serde(rename = "X座標")] // 必須
94    pub x: Option<String>,
95    #[serde(rename = "Y座標定義")] // 必須
96    pub y_definition: Option<String>,
97    #[serde(rename = "Y座標")] // 必須
98    pub y: Option<String>,
99    #[serde(rename = "Z座標定義")] // 必須
100    pub z_definition: Option<String>,
101    #[serde(rename = "Z座標")] // 必須
102    pub z: Option<String>,
103}
104
105#[derive(Debug, Serialize, Deserialize)]
106pub struct SurveyPosition {
107    #[serde(rename = "調査位置住所")] // 必須
108    pub address: Option<String>,
109    #[serde(rename = "コード1次")] // 必須
110    pub code1: Option<String>,
111    #[serde(rename = "コード2次")] // 必須
112    pub code2: Option<String>,
113    #[serde(rename = "コード3次")] // 必須
114    pub code3: Option<String>,
115}
116
117#[derive(Debug, Serialize, Deserialize)]
118pub struct OrderInstitution {
119    #[serde(rename = "発注機関名称")] // 必須
120    pub name: Option<String>,
121    #[serde(rename = "テクリスコード")] // 必須
122    pub code: Option<String>,
123}
124
125#[derive(Debug, Serialize, Deserialize)]
126pub struct SurveyPeriod {
127    #[serde(rename = "調査期間_開始年")] // 必須
128    pub start_year: Option<String>,
129    #[serde(rename = "調査期間_開始月")] // 必須
130    pub start_month: Option<String>,
131    #[serde(rename = "調査期間_開始日")] // 必須
132    pub start_day: Option<String>,
133    #[serde(rename = "調査期間_終了年")] // 必須
134    pub end_year: Option<String>,
135    #[serde(rename = "調査期間_終了月")] // 必須
136    pub end_month: Option<String>,
137    #[serde(rename = "調査期間_終了日")] // 必須
138    pub end_day: Option<String>,
139}
140
141#[derive(Debug, Serialize, Deserialize)]
142pub struct SurveyCompany {
143    #[serde(rename = "調査会社_名称")] // 必須
144    pub name: Option<String>,
145    #[serde(rename = "調査会社_TEL")] // 必須
146    pub tel: Option<String>,
147    #[serde(rename = "調査会社_主任技師")] // 必須
148    pub chief_engineer: Option<String>,
149    #[serde(rename = "調査会社_現場代理人")] // 必須
150    pub field_agent: Option<String>,
151    #[serde(rename = "調査会社_コア鑑定者")] // 必須
152    pub core_appraiser: Option<String>,
153    #[serde(rename = "調査会社_ボーリング責任者")] // 必須
154    pub boring_manager: Option<String>,
155}
156
157#[derive(Debug, Serialize, Deserialize)]
158pub struct BoringBasicInfo {
159    #[serde(rename = "孔口標高")] // 必須
160    pub elevation: Option<String>,
161    #[serde(rename = "総掘進長")] // 必須
162    pub total_length: Option<String>,
163    #[serde(rename = "地質柱状図様式")] // 必須
164    pub columnar_section_style: Option<String>,
165    #[serde(default, rename = "掘進角度")] // オプション
166    pub drilling_angle: Option<String>,
167    #[serde(default, rename = "掘進方位")] // オプション
168    pub drilling_direction: Option<String>,
169    #[serde(rename = "地盤勾配")] // 必須
170    pub ground_slope: Option<String>,
171}
172
173#[derive(Debug, Serialize, Deserialize)]
174pub struct DrillingMachine {
175    #[serde(rename = "試錐機_名称")]
176    pub name: Option<String>,
177    #[serde(rename = "試錐機_能力")]
178    pub capacity: Option<String>,
179    #[serde(rename = "試錐機_方法")]
180    pub method: Option<String>,
181}
182
183#[derive(Debug, Serialize, Deserialize)]
184pub struct HammerDropTool {
185    #[serde(rename = "ハンマ落下用具_コード")]
186    pub code: Option<String>,
187    #[serde(rename = "ハンマ落下用具_名称")]
188    pub name: Option<String>,
189}
190
191#[derive(Debug, Serialize, Deserialize)]
192pub struct NValueRecorder {
193    #[serde(rename = "N値記録用具_コード")]
194    pub code: Option<String>,
195    #[serde(rename = "N値記録用具_名称")]
196    pub name: Option<String>,
197}
198
199#[derive(Debug, Serialize, Deserialize)]
200pub struct Engine {
201    #[serde(rename = "エンジン_名称")]
202    pub name: Option<String>,
203    #[serde(rename = "エンジン_能力")]
204    pub capacity: Option<String>,
205    #[serde(rename = "エンジン_単位")]
206    pub unit: Option<String>,
207}
208
209#[derive(Debug, Serialize, Deserialize)]
210pub struct Pump {
211    #[serde(rename = "ポンプ_名称")]
212    pub name: Option<String>,
213    #[serde(rename = "ポンプ_能力")]
214    pub capacity: Option<String>,
215    #[serde(rename = "ポンプ_単位")]
216    pub unit: Option<String>,
217}
218
219#[derive(Debug, Serialize, Deserialize)]
220pub struct PortAuthorityCode {
221    #[serde(rename = "櫓種類コード")]
222    pub tower_type_code: Option<String>,
223    #[serde(rename = "建設局")]
224    pub construction_bureau: Option<String>,
225    #[serde(rename = "都道府県")]
226    pub prefecture: Option<String>,
227    #[serde(rename = "港名")]
228    pub port_name: Option<String>,
229    #[serde(rename = "調査者")]
230    pub investigator: Option<String>,
231}
232
233#[derive(Debug, Serialize, Deserialize)]
234pub struct Core {
235    #[serde(rename = "地質区分")]
236    pub geological_classifications: Vec<GeologicalClassification>,
237    #[serde(default, rename = "色調")]
238    pub colors: Vec<Color>,
239    #[serde(default, rename = "観察記事")]
240    pub observational_articles: Vec<ObservationalArticle>,
241    #[serde(default, rename = "観察記事枠線")]
242    pub observational_article_frames: Vec<ObservationalArticleFrame>,
243    #[serde(default, rename = "標準貫入試験")]
244    pub standard_penetration_test: Vec<StandardPenetrationTest>,
245    #[serde(default, rename = "相対密度稠度")]
246    pub relative_density: Vec<RelativeDensity>,
247    #[serde(default, rename = "孔内水平載荷試験")]
248    pub borehole_horizontal_load_test: Vec<BoreholeHorizontalLoadTest>,
249    #[serde(default, rename = "透水試験")]
250    pub borehole_drilled_well_test: Vec<BoreholeDrilledWellTest>,
251    #[serde(default, rename = "P波試験")]
252    pub p_wave_test: Vec<PWaveTest>,
253    #[serde(default, rename = "S波試験")]
254    pub s_wave_test: Vec<SWaveTest>,
255    #[serde(default, rename = "その他原位置試験")]
256    pub other_original_position_tests: Vec<OtherOriginalPositionTests>,
257    #[serde(default, rename = "採取試料")]
258    pub core_samples: Vec<CoreSample>,
259    #[serde(default, rename = "土質試験結果")]
260    pub soil_test_result: Vec<SoilTestResult>,
261    #[serde(default, rename = "地盤分類")]
262    pub ground_classifications: Vec<GeotechnicalClassification>,
263    #[serde(default, rename = "地質時代")]
264    pub geological_eras: Vec<GeologicalEra>,
265    #[serde(default, rename = "地層区分")]
266    pub geostratum_classifications: Vec<GeostratumClassification>,
267    #[serde(default, rename = "孔内水位")]
268    pub borehole_water_levels: Vec<BoreholeWaterLevel>,
269    #[serde(default, rename = "掘削工程")]
270    pub drilling_process: Vec<DrillingProcess>,
271    #[serde(default, rename = "孔径孔壁保護")]
272    pub borehole_wall_protection: Vec<BoreholeWallProtection>,
273    #[serde(default, rename = "断層区分")]
274    pub fault_classification: Vec<FaultClassification>,
275    #[serde(default, rename = "フリー情報")]
276    pub free_info: Vec<FreeInfo>,
277}
278
279#[derive(Debug, Serialize, Deserialize)]
280pub struct GeologicalClassification {
281    #[serde(rename = "地質区分_深度")]
282    pub depth: Option<String>,
283    #[serde(rename = "地質区分_地質名称1")]
284    pub classification1: Option<String>,
285    #[serde(rename = "地質区分_地質コード1")]
286    pub code1: Option<String>,
287    #[serde(rename = "地質区分_地質名称2")]
288    pub classification2: Option<String>,
289    #[serde(rename = "地質区分_地質コード2")]
290    pub code2: Option<String>,
291}
292
293#[derive(Debug, Serialize, Deserialize)]
294pub struct Color {
295    #[serde(rename = "色調_下端深度")]
296    pub depth: Option<String>,
297    #[serde(rename = "色調_状態")]
298    pub state: Option<String>,
299    #[serde(rename = "色調_コード")]
300    pub code: Option<String>,
301}
302
303#[derive(Debug, Serialize, Deserialize)]
304pub struct ObservationalArticle {
305    #[serde(rename = "観察記事_上端深度")]
306    pub start_depth: Option<String>,
307    #[serde(rename = "観察記事_下端深度")]
308    pub end_depth: Option<String>,
309    #[serde(rename = "観察記事_記事")]
310    pub observation: Option<String>,
311}
312
313#[derive(Debug, Serialize, Deserialize)]
314pub struct ObservationalArticleFrame {
315    #[serde(rename = "観察記事枠線_下端深度")]
316    pub end_depth: Option<String>,
317}
318
319#[derive(Debug, Clone, Serialize, Deserialize)]
320pub struct StandardPenetrationTest {
321    #[serde(default, rename = "標準貫入試験_開始深度")]
322    pub start_depth: Option<String>,
323    #[serde(default, rename = "標準貫入試験_0_10打撃回数")]
324    pub hits_0_10: Option<String>,
325    #[serde(default, rename = "標準貫入試験_0_10貫入量")]
326    pub penetration_0_10: Option<String>,
327    #[serde(default, rename = "標準貫入試験_10_20打撃回数")]
328    pub hits_10_20: Option<String>,
329    #[serde(default, rename = "標準貫入試験_10_20貫入量")]
330    pub penetration_10_20: Option<String>,
331    #[serde(default, rename = "標準貫入試験_20_30打撃回数")]
332    pub hits_20_30: Option<String>,
333    #[serde(default, rename = "標準貫入試験_20_30貫入量")]
334    pub penetration_20_30: Option<String>,
335    #[serde(default, rename = "標準貫入試験_合計打撃回数")]
336    pub total_hits: Option<String>,
337    #[serde(default, rename = "標準貫入試験_合計貫入量")]
338    pub total_penetration: Option<String>,
339    #[serde(default, rename = "標準貫入試験_備考")]
340    pub remarks: Option<String>,
341}
342
343#[derive(Debug, Serialize, Deserialize)]
344pub struct RelativeDensity {
345    #[serde(rename = "相対密度稠度_下端深度")]
346    pub depth: Option<String>,
347    #[serde(default, rename = "相対密度_コード")]
348    pub code: Option<String>,
349    #[serde(default, rename = "相対密度_状態")]
350    pub state: Option<String>,
351    #[serde(default, rename = "相対稠度_コード")]
352    pub relative_compaction_code: Option<String>,
353    #[serde(default, rename = "相対稠度_状態")]
354    pub relative_compaction_state: Option<String>,
355}
356
357#[derive(Debug, Serialize, Deserialize)]
358pub struct BoreholeHorizontalLoadTest {
359    #[serde(rename = "孔内水平載荷試験_試験深度")] // 必須
360    pub depth: Option<String>,
361    #[serde(rename = "孔内水平載荷試験_試験方法コード")] // 必須
362    pub method_code: Option<String>,
363    #[serde(default, rename = "孔内水平載荷試験_試験方法")] // オプション
364    pub method: Option<String>,
365    #[serde(rename = "孔内水平載荷試験_初期圧")] // 必須
366    pub initial_pressure: Option<String>,
367    #[serde(rename = "孔内水平載荷試験_降伏圧")] // 必須
368    pub yield_pressure: Option<String>,
369    #[serde(rename = "孔内水平載荷試験_変形係数")] // 必須
370    pub deformation_coefficient: Option<String>,
371}
372
373#[derive(Debug, Serialize, Deserialize)]
374pub struct BoreholeDrilledWellTest {
375    #[serde(rename = "透水試験_上端深度")] // 必須
376    pub start_depth: Option<String>,
377    #[serde(rename = "透水試験_下端深度")] // 必須
378    pub end_depth: Option<String>,
379    #[serde(rename = "透水試験_試験コード")] // 必須
380    pub test_code: Option<String>,
381    #[serde(default, rename = "透水試験_試験方法")] // オプション
382    pub test_method: Option<String>,
383    #[serde(rename = "透水試験_透水係数")] // 必須
384    pub permeability: Option<String>,
385}
386
387#[derive(Debug, Serialize, Deserialize)]
388pub struct PWaveTest {
389    #[serde(rename = "P波試験_上端深度")]
390    pub start_depth: Option<String>,
391    #[serde(rename = "P波試験_下端深度")]
392    pub end_depth: Option<String>,
393    #[serde(rename = "P波試験_速度")]
394    pub velocity: Option<String>,
395}
396
397#[derive(Debug, Serialize, Deserialize)]
398pub struct SWaveTest {
399    #[serde(rename = "S波試験_上端深度")]
400    pub start_depth: Option<String>,
401    #[serde(rename = "S波試験_下端深度")]
402    pub end_depth: Option<String>,
403    #[serde(rename = "S波試験_速度")]
404    pub velocity: Option<String>,
405}
406
407#[derive(Debug, Serialize, Deserialize)]
408pub struct OtherOriginalPositionTests {
409    #[serde(default, rename = "その他原位置試験_試験方法")]
410    pub test_method: Option<String>,
411    #[serde(default, rename = "その他原位置試験_上端深度")]
412    pub start_depth: Option<String>,
413    #[serde(default, rename = "その他原位置試験_下端深度")]
414    pub end_depth: Option<String>,
415    #[serde(default, rename = "その他原位置試験_試験結果")]
416    pub test_result: Option<String>,
417}
418
419#[derive(Debug, Serialize, Deserialize, PartialEq)]
420pub struct CoreSample {
421    #[serde(default, rename = "採取試料_上端深度")]
422    pub start_depth: Option<String>,
423    #[serde(default, rename = "採取試料_下端深度")]
424    pub end_depth: Option<String>,
425    #[serde(default, rename = "採取試料_試料番号")]
426    pub sample_number: Option<String>,
427    #[serde(default, rename = "採取試料_採取方法コード")]
428    pub collection_method_code: Option<String>,
429    #[serde(default, rename = "採取試料_採取方法")]
430    pub method: Option<String>,
431}
432
433#[derive(Debug, Serialize, Deserialize)]
434pub struct SoilTestResult {
435    #[serde(rename = "土質試験結果_試料番号")] // 必須
436    pub sample_number: Option<String>,
437    #[serde(rename = "土質試験結果_上端深度")] // 必須
438    pub start_depth: Option<String>,
439    #[serde(rename = "土質試験結果_下端深度")] // 必須
440    pub end_depth: Option<String>,
441    #[serde(default, rename = "土質試験結果_湿潤密度")] // オプション
442    pub wet_density: Option<String>,
443    #[serde(default, rename = "土質試験結果_乾燥密度")] // オプション
444    pub dry_density: Option<String>,
445    #[serde(default, rename = "土質試験結果_土粒子密度")] // オプション
446    pub soil_particle_density: Option<String>,
447    #[serde(default, rename = "土質試験結果_自然含水比")] // オプション
448    pub natural_water_content: Option<String>,
449    #[serde(default, rename = "土質試験結果_間隙比")] // オプション
450    pub void_ratio: Option<String>,
451    #[serde(default, rename = "土質試験結果_飽和度")] // オプション
452    pub saturation: Option<String>,
453    #[serde(default, rename = "土質試験結果_粒度_石")] // オプション
454    pub stone: Option<String>,
455    #[serde(default, rename = "土質試験結果_粒度_礫")] // オプション
456    pub gravel: Option<String>,
457    #[serde(default, rename = "土質試験結果_粒度_砂")] // オプション
458    pub sand: Option<String>,
459    #[serde(default, rename = "土質試験結果_粒度_シルト")] // オプション
460    pub silt: Option<String>,
461    #[serde(default, rename = "土質試験結果_粒度_粘土")] // オプション
462    pub clay: Option<String>,
463    #[serde(default, rename = "土質試験結果_粒度_最大粒径")] // オプション
464    pub max_grain_size: Option<String>,
465    #[serde(default, rename = "土質試験結果_粒度_均等係数")] // オプション
466    pub equal_coefficient: Option<String>,
467    #[serde(default, rename = "土質試験結果_液性限界")] // オプション
468    pub liquidity_limit: Option<String>,
469    #[serde(default, rename = "土質試験結果_塑性限界")] // オプション
470    pub plasticity_limit: Option<String>,
471    #[serde(default, rename = "土質試験結果_塑性指数")] // オプション
472    pub plasticity_index: Option<String>,
473    #[serde(default, rename = "土質試験結果_地盤材料名")] // オプション
474    pub soil_name: Option<String>,
475    #[serde(default, rename = "土質試験結果_地盤材料記号")] // オプション
476    pub soil_symbol: Option<String>,
477    #[serde(default, rename = "土質試験結果_圧密試験方法")] // オプション
478    pub compression_test_method: Option<String>,
479    #[serde(default, rename = "土質試験結果_圧縮指数")] // オプション
480    pub compression_index: Option<String>,
481    #[serde(default, rename = "土質試験結果_圧密降伏応力")] // オプション
482    pub compression_yield_stress: Option<String>,
483    #[serde(default, rename = "土質試験結果_体積圧縮係数")] // オプション
484    pub volume_compression_coefficient: Option<String>,
485    #[serde(default, rename = "土質試験結果_圧密係数")] // オプション
486    pub compression_coefficient: Option<String>,
487    #[serde(default, rename = "土質試験結果_応力範囲")] // オプション
488    pub stress_range: Option<String>,
489    #[serde(default, rename = "土質試験結果_一軸圧縮強さ1")] // オプション
490    pub compression_strength_1: Option<String>,
491    #[serde(default, rename = "土質試験結果_一軸圧縮強さ2")] // オプション
492    pub compression_strength_2: Option<String>,
493    #[serde(default, rename = "土質試験結果_一軸圧縮強さ3")] // オプション
494    pub compression_strength_3: Option<String>,
495    #[serde(default, rename = "土質試験結果_一軸圧縮強さ4")] // オプション
496    pub compression_strength_4: Option<String>,
497    #[serde(default, rename = "土質試験結果_一軸試験破壊ひずみ1")] // オプション
498    pub compression_failure_1: Option<String>,
499    #[serde(default, rename = "土質試験結果_一軸試験破壊ひずみ2")] // オプション
500    pub compression_failure_2: Option<String>,
501    #[serde(default, rename = "土質試験結果_一軸試験破壊ひずみ3")] // オプション
502    pub compression_failure_3: Option<String>,
503    #[serde(default, rename = "土質試験結果_一軸試験破壊ひずみ4")] // オプション
504    pub compression_failure_4: Option<String>,
505    #[serde(default, rename = "土質試験結果_一軸試験鋭敏比")] // オプション
506    pub compression_sharpness_ratio: Option<String>,
507    #[serde(default, rename = "土質試験結果_せん断試験条件")] // オプション
508    pub tensile_test_condition: Option<String>,
509    #[serde(default, rename = "土質試験結果_せん断強さ_全応力")] // オプション
510    pub tensile_strength_total: Option<String>,
511    #[serde(default, rename = "土質試験結果_せん断抵抗角_全応力")] // オプション
512    pub tensile_resistance_angle_total: Option<String>,
513    #[serde(default, rename = "土質試験結果_せん断強さ_有効応力")] // オプション
514    pub tensile_strength_effective: Option<String>,
515    #[serde(default, rename = "土質試験結果_せん断抵抗角_有効応力")] // オプション
516    pub tensile_resistance_angle_effective: Option<String>,
517    #[serde(default, rename = "土質試験結果_試料状態")] // オプション
518    pub sample_condition: Option<String>,
519}
520
521#[derive(Debug, Serialize, Deserialize)]
522pub struct GeotechnicalClassification {
523    #[serde(rename = "地盤分類_下端深度")]
524    pub end_depth: Option<String>,
525    #[serde(rename = "地盤分類_工学的分類記号")]
526    pub classification_symbol: Option<String>,
527}
528
529#[derive(Debug, Serialize, Deserialize, PartialEq)]
530pub struct GeologicalEra {
531    #[serde(rename = "地質時代_上端深度")]
532    pub start_depth: Option<String>,
533    #[serde(rename = "地質時代_下端深度")]
534    pub end_depth: Option<String>,
535    #[serde(rename = "地質時代_コード")]
536    pub code: Option<String>,
537    #[serde(rename = "地質時代_時代名")]
538    pub name: Option<String>,
539}
540
541#[derive(Debug, Serialize, Deserialize)]
542pub struct GeostratumClassification {
543    #[serde(rename = "地層区分_上端深度")]
544    pub start_depth: Option<String>,
545    #[serde(rename = "地層区分_下端深度")]
546    pub end_depth: Option<String>,
547    #[serde(rename = "地層区分_地層名")]
548    pub rock_body_name: Option<String>,
549}
550
551#[derive(Debug, Serialize, Deserialize, PartialEq)]
552pub struct BoreholeWaterLevel {
553    #[serde(default, rename = "孔内水位_測定年")]
554    pub year: Option<String>,
555    #[serde(default, rename = "孔内水位_測定月")]
556    pub month: Option<String>,
557    #[serde(default, rename = "孔内水位_測定日")]
558    pub day: Option<String>,
559    #[serde(default, rename = "孔内水位_掘削深度")]
560    pub depth: Option<String>,
561    #[serde(default, rename = "孔内水位_孔内水位")]
562    pub water_level: Option<String>,
563    #[serde(default, rename = "孔内水位_水位種別")]
564    pub water_level_type: Option<String>,
565}
566
567#[derive(Debug, Serialize, Deserialize)]
568pub struct DrillingProcess {
569    #[serde(default, rename = "掘削工程_測定年")]
570    pub measurement_year: Option<String>,
571    #[serde(default, rename = "掘削工程_測定月")]
572    pub measurement_month: Option<String>,
573    #[serde(default, rename = "掘削工程_測定日")]
574    pub measurement_day: Option<String>,
575    #[serde(default, rename = "掘削工程_掘進深度")]
576    pub drilling_depth: Option<String>,
577}
578
579#[derive(Debug, Clone, Serialize, Deserialize)]
580pub struct BoreholeWallProtection {
581    #[serde(default, rename = "孔径孔壁保護_上端深度")]
582    pub upper_depth: Option<String>,
583    #[serde(default, rename = "孔径孔壁保護_下端深度")]
584    pub lower_depth: Option<String>,
585    #[serde(default, rename = "孔径孔壁保護_孔径")]
586    pub diameter: Option<String>,
587    #[serde(default, rename = "孔径孔壁保護_孔壁保護")]
588    pub wall_protection: Option<String>,
589    #[serde(default, rename = "孔径孔壁保護_送水条件")]
590    pub water_supply_condition: Option<String>,
591}
592
593#[derive(Debug, Serialize, Deserialize)]
594pub struct FaultClassification {
595    #[serde(default, rename = "断層区分_上端深度")]
596    pub upper_depth: Option<String>,
597    #[serde(default, rename = "断層区分_下端深度")]
598    pub lower_depth: Option<String>,
599    #[serde(default, rename = "断層区分_性状")]
600    pub property: Option<String>,
601}