boring_parser/
boring_structs_110.rs

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