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 = "ローカル座標")] 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 = "港湾局指定コード")] pub port_authority_code: Option<PortAuthorityCode>,
47}
48
49#[derive(Debug, Serialize, Deserialize)]
50pub struct BasicSurvey {
51 #[serde(rename = "事業工事名")] pub project_name: Option<String>,
53 #[serde(rename = "調査名")] pub survey_name: Option<String>,
55 #[serde(rename = "調査目的")] pub survey_purpose: Option<String>,
57 #[serde(rename = "調査対象")] pub survey_target: Option<String>,
59 #[serde(rename = "ボーリング名")] pub boring_name: Option<String>,
61 #[serde(rename = "ボーリング連番")] pub boring_serial: Option<String>,
63 #[serde(rename = "ボーリング総数")] pub total_boring: Option<String>,
65}
66
67#[derive(Debug, Serialize, Deserialize)]
68pub struct LngLat {
69 #[serde(rename = "経度_度")] pub longitude_degree: Option<String>,
71 #[serde(rename = "経度_分")] pub longitude_minute: Option<String>,
73 #[serde(rename = "経度_秒")] pub longitude_second: Option<String>,
75 #[serde(rename = "緯度_度")] pub latitude_degree: Option<String>,
77 #[serde(rename = "緯度_分")] pub latitude_minute: Option<String>,
79 #[serde(rename = "緯度_秒")] pub latitude_second: Option<String>,
81 #[serde(rename = "取得方法コード")] pub acquisition_method_code: Option<String>,
83 #[serde(rename = "読取精度コード")] pub reading_precision_code: Option<String>,
85 #[serde(rename = "測地系")] pub geodetic_system: Option<String>,
87}
88
89#[derive(Debug, Serialize, Deserialize, PartialEq)]
90pub struct LocalCoordinateDefinition {
91 #[serde(rename = "X座標定義")] pub x_definition: Option<String>,
93 #[serde(rename = "X座標")] pub x: Option<String>,
95 #[serde(rename = "Y座標定義")] pub y_definition: Option<String>,
97 #[serde(rename = "Y座標")] pub y: Option<String>,
99 #[serde(rename = "Z座標定義")] pub z_definition: Option<String>,
101 #[serde(rename = "Z座標")] pub z: Option<String>,
103}
104
105#[derive(Debug, Serialize, Deserialize)]
106pub struct SurveyPosition {
107 #[serde(rename = "調査位置住所")] pub address: Option<String>,
109 #[serde(rename = "コード1次")] pub code1: Option<String>,
111 #[serde(rename = "コード2次")] pub code2: Option<String>,
113 #[serde(rename = "コード3次")] pub code3: Option<String>,
115}
116
117#[derive(Debug, Serialize, Deserialize)]
118pub struct OrderInstitution {
119 #[serde(rename = "発注機関名称")] pub name: Option<String>,
121 #[serde(rename = "テクリスコード")] pub code: Option<String>,
123}
124
125#[derive(Debug, Serialize, Deserialize)]
126pub struct SurveyPeriod {
127 #[serde(rename = "調査期間_開始年")] pub start_year: Option<String>,
129 #[serde(rename = "調査期間_開始月")] pub start_month: Option<String>,
131 #[serde(rename = "調査期間_開始日")] pub start_day: Option<String>,
133 #[serde(rename = "調査期間_終了年")] pub end_year: Option<String>,
135 #[serde(rename = "調査期間_終了月")] pub end_month: Option<String>,
137 #[serde(rename = "調査期間_終了日")] pub end_day: Option<String>,
139}
140
141#[derive(Debug, Serialize, Deserialize)]
142pub struct SurveyCompany {
143 #[serde(rename = "調査会社_名称")] pub name: Option<String>,
145 #[serde(rename = "調査会社_TEL")] pub tel: Option<String>,
147 #[serde(rename = "調査会社_主任技師")] pub chief_engineer: Option<String>,
149 #[serde(rename = "調査会社_現場代理人")] pub field_agent: Option<String>,
151 #[serde(rename = "調査会社_コア鑑定者")] pub core_appraiser: Option<String>,
153 #[serde(rename = "調査会社_ボーリング責任者")] pub boring_manager: Option<String>,
155}
156
157#[derive(Debug, Serialize, Deserialize)]
158pub struct BoringBasicInfo {
159 #[serde(rename = "孔口標高")] pub elevation: Option<String>,
161 #[serde(rename = "総掘進長")] pub total_length: Option<String>,
163 #[serde(rename = "地質柱状図様式")] pub columnar_section_style: Option<String>,
165 #[serde(default, rename = "掘進角度")] pub drilling_angle: Option<String>,
167 #[serde(default, rename = "掘進方位")] pub drilling_direction: Option<String>,
169 #[serde(rename = "地盤勾配")] 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 = "孔内水平載荷試験_試験深度")] pub depth: Option<String>,
361 #[serde(rename = "孔内水平載荷試験_試験方法コード")] pub method_code: Option<String>,
363 #[serde(default, rename = "孔内水平載荷試験_試験方法")] pub method: Option<String>,
365 #[serde(rename = "孔内水平載荷試験_初期圧")] pub initial_pressure: Option<String>,
367 #[serde(rename = "孔内水平載荷試験_降伏圧")] pub yield_pressure: Option<String>,
369 #[serde(rename = "孔内水平載荷試験_変形係数")] pub deformation_coefficient: Option<String>,
371}
372
373#[derive(Debug, Serialize, Deserialize)]
374pub struct BoreholeDrilledWellTest {
375 #[serde(rename = "透水試験_上端深度")] pub start_depth: Option<String>,
377 #[serde(rename = "透水試験_下端深度")] pub end_depth: Option<String>,
379 #[serde(rename = "透水試験_試験コード")] pub test_code: Option<String>,
381 #[serde(default, rename = "透水試験_試験方法")] pub test_method: Option<String>,
383 #[serde(rename = "透水試験_透水係数")] 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 = "土質試験結果_試料番号")] pub sample_number: Option<String>,
437 #[serde(rename = "土質試験結果_上端深度")] pub start_depth: Option<String>,
439 #[serde(rename = "土質試験結果_下端深度")] pub end_depth: Option<String>,
441 #[serde(default, rename = "土質試験結果_湿潤密度")] pub wet_density: Option<String>,
443 #[serde(default, rename = "土質試験結果_乾燥密度")] pub dry_density: Option<String>,
445 #[serde(default, rename = "土質試験結果_土粒子密度")] pub soil_particle_density: Option<String>,
447 #[serde(default, rename = "土質試験結果_自然含水比")] pub natural_water_content: Option<String>,
449 #[serde(default, rename = "土質試験結果_間隙比")] pub void_ratio: Option<String>,
451 #[serde(default, rename = "土質試験結果_飽和度")] pub saturation: Option<String>,
453 #[serde(default, rename = "土質試験結果_粒度_石")] pub stone: Option<String>,
455 #[serde(default, rename = "土質試験結果_粒度_礫")] pub gravel: Option<String>,
457 #[serde(default, rename = "土質試験結果_粒度_砂")] pub sand: Option<String>,
459 #[serde(default, rename = "土質試験結果_粒度_シルト")] pub silt: Option<String>,
461 #[serde(default, rename = "土質試験結果_粒度_粘土")] pub clay: Option<String>,
463 #[serde(default, rename = "土質試験結果_粒度_最大粒径")] pub max_grain_size: Option<String>,
465 #[serde(default, rename = "土質試験結果_粒度_均等係数")] pub equal_coefficient: Option<String>,
467 #[serde(default, rename = "土質試験結果_液性限界")] pub liquidity_limit: Option<String>,
469 #[serde(default, rename = "土質試験結果_塑性限界")] pub plasticity_limit: Option<String>,
471 #[serde(default, rename = "土質試験結果_塑性指数")] pub plasticity_index: Option<String>,
473 #[serde(default, rename = "土質試験結果_地盤材料名")] pub soil_name: Option<String>,
475 #[serde(default, rename = "土質試験結果_地盤材料記号")] pub soil_symbol: Option<String>,
477 #[serde(default, rename = "土質試験結果_圧密試験方法")] pub compression_test_method: Option<String>,
479 #[serde(default, rename = "土質試験結果_圧縮指数")] pub compression_index: Option<String>,
481 #[serde(default, rename = "土質試験結果_圧密降伏応力")] pub compression_yield_stress: Option<String>,
483 #[serde(default, rename = "土質試験結果_体積圧縮係数")] pub volume_compression_coefficient: Option<String>,
485 #[serde(default, rename = "土質試験結果_圧密係数")] pub compression_coefficient: Option<String>,
487 #[serde(default, rename = "土質試験結果_応力範囲")] pub stress_range: Option<String>,
489 #[serde(default, rename = "土質試験結果_一軸圧縮強さ1")] pub compression_strength_1: Option<String>,
491 #[serde(default, rename = "土質試験結果_一軸圧縮強さ2")] pub compression_strength_2: Option<String>,
493 #[serde(default, rename = "土質試験結果_一軸圧縮強さ3")] pub compression_strength_3: Option<String>,
495 #[serde(default, rename = "土質試験結果_一軸圧縮強さ4")] pub compression_strength_4: Option<String>,
497 #[serde(default, rename = "土質試験結果_一軸試験破壊ひずみ1")] pub compression_failure_1: Option<String>,
499 #[serde(default, rename = "土質試験結果_一軸試験破壊ひずみ2")] pub compression_failure_2: Option<String>,
501 #[serde(default, rename = "土質試験結果_一軸試験破壊ひずみ3")] pub compression_failure_3: Option<String>,
503 #[serde(default, rename = "土質試験結果_一軸試験破壊ひずみ4")] pub compression_failure_4: Option<String>,
505 #[serde(default, rename = "土質試験結果_一軸試験鋭敏比")] pub compression_sharpness_ratio: Option<String>,
507 #[serde(default, rename = "土質試験結果_せん断試験条件")] pub tensile_test_condition: Option<String>,
509 #[serde(default, rename = "土質試験結果_せん断強さ_全応力")] pub tensile_strength_total: Option<String>,
511 #[serde(default, rename = "土質試験結果_せん断抵抗角_全応力")] pub tensile_resistance_angle_total: Option<String>,
513 #[serde(default, rename = "土質試験結果_せん断強さ_有効応力")] pub tensile_strength_effective: Option<String>,
515 #[serde(default, rename = "土質試験結果_せん断抵抗角_有効応力")] pub tensile_resistance_angle_effective: Option<String>,
517 #[serde(default, rename = "土質試験結果_試料状態")] 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}