use serde::{Deserialize, Serialize};
use crate::classification::{ClassificationInfo, Constituent, RockGroupCode, RockGroupInfo};
use crate::types::FreeInfo;
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename = "ボーリング情報")]
pub struct Boring210 {
#[serde(rename = "@DTD_version")]
pub dtd_version: Option<String>,
#[serde(rename = "標題情報")]
pub title: Title210,
#[serde(rename = "コア情報")]
pub core: Core210,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Title210 {
#[serde(rename = "調査基本情報")]
pub basic_info: BasicSurvey210,
#[serde(rename = "経度緯度情報")]
pub longitude_latitude: LngLat210,
#[serde(default, rename = "ローカル座標")] pub local_coordinates: Vec<LocalCoordinate210>,
#[serde(rename = "調査位置")]
pub survey_position: SurveyPosition210,
#[serde(rename = "発注機関")]
pub order_institution: OrderInstitution210,
#[serde(rename = "調査期間")]
pub survey_period: SurveyPeriod210,
#[serde(rename = "調査会社")]
pub survey_company: SurveyCompany210,
#[serde(rename = "ボーリング基本情報")]
pub boring_basic_info: BoringBasicInfo210,
#[serde(rename = "試錐機")]
pub drilling_machine: DrillingMachine210,
#[serde(rename = "エンジン")]
pub engine: Engine210,
#[serde(default, rename = "ハンマー落下用具")] pub hammer_drop_tool: Option<HammerDropTool210>,
#[serde(default, rename = "N値記録用具")] pub n_value_recorder: Option<NValueRecorder210>,
#[serde(rename = "ポンプ")]
pub pump: Pump210,
#[serde(default, rename = "櫓種類")] pub tower_type: Option<TowerType210>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BasicSurvey210 {
#[serde(default, rename = "事業工事名")] pub project_name: Option<String>,
#[serde(rename = "調査名")] pub survey_name: Option<String>,
#[serde(rename = "調査目的")] pub survey_purpose: Option<String>,
#[serde(rename = "調査対象")] pub survey_target: Option<String>,
#[serde(rename = "ボーリング名")] pub boring_name: Option<String>,
#[serde(rename = "ボーリング総数")] pub total_boring: Option<String>,
#[serde(rename = "ボーリング連番")] pub boring_serial: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct LngLat210 {
#[serde(rename = "経度_度")] pub longitude_degree: Option<String>,
#[serde(rename = "経度_分")] pub longitude_minute: Option<String>,
#[serde(rename = "経度_秒")] pub longitude_second: Option<String>,
#[serde(rename = "緯度_度")] pub latitude_degree: Option<String>,
#[serde(rename = "緯度_分")] pub latitude_minute: Option<String>,
#[serde(rename = "緯度_秒")] pub latitude_second: Option<String>,
#[serde(rename = "取得方法コード")] pub acquisition_method_code: Option<String>,
#[serde(default, rename = "取得方法説明")] pub acquisition_method_description: Option<String>,
#[serde(rename = "読取精度コード")] pub reading_precision_code: Option<String>,
#[serde(rename = "測地系")] pub geodetic_system: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct LocalCoordinate210 {
#[serde(rename = "座標定義")] pub definition: Option<String>,
#[serde(rename = "座標")] pub coordinate: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SurveyPosition210 {
#[serde(rename = "調査位置住所")] pub address: Option<String>,
#[serde(rename = "コード1次")] pub code1: Option<String>,
#[serde(rename = "コード2次")] pub code2: Option<String>,
#[serde(rename = "コード3次")] pub code3: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct OrderInstitution210 {
#[serde(rename = "発注機関名称")] pub name: Option<String>,
#[serde(rename = "テクリスコード")] pub code: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SurveyPeriod210 {
#[serde(rename = "調査期間_開始年月日")] pub start_date: Option<String>,
#[serde(rename = "調査期間_終了年月日")] pub end_date: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SurveyCompany210 {
#[serde(rename = "調査会社_名称")] pub name: Option<String>,
#[serde(rename = "調査会社_TEL")] pub tel: Option<String>,
#[serde(rename = "調査会社_主任技師")] pub chief_engineer: Option<String>,
#[serde(rename = "調査会社_現場代理人")] pub field_agent: Option<String>,
#[serde(rename = "調査会社_コア鑑定者")] pub core_appraiser: Option<String>,
#[serde(rename = "調査会社_ボーリング責任者")] pub boring_manager: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BoringBasicInfo210 {
#[serde(rename = "孔口標高")] pub surface_elevation: Option<String>,
#[serde(rename = "総掘進長")] pub total_drilling_length: Option<String>,
#[serde(rename = "柱状図様式")] pub columnar_section_style: Option<String>,
#[serde(default, rename = "掘進角度")] pub angle: Option<String>,
#[serde(default, rename = "掘進方向")] pub azimuth: Option<String>,
#[serde(default, rename = "地盤勾配")] pub ground_slope: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct DrillingMachine210 {
#[serde(rename = "試錐機_名称")] pub name: Option<String>,
#[serde(default, rename = "試錐機_能力")] pub capacity: Option<String>,
#[serde(default, rename = "試錐機_方法")] pub method: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Engine210 {
#[serde(rename = "エンジン_名称")] pub name: Option<String>,
#[serde(default, rename = "エンジン_能力")] pub capacity: Option<String>,
#[serde(default, rename = "エンジン_単位")] pub unit: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct HammerDropTool210 {
#[serde(rename = "ハンマー落下用具_コード")] pub code: Option<String>,
#[serde(default, rename = "ハンマー落下用具_名称")] pub name: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct NValueRecorder210 {
#[serde(rename = "N値記録用具_コード")] pub code: Option<String>,
#[serde(default, rename = "N値記録用具_名称")] pub name: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Pump210 {
#[serde(rename = "ポンプ_名称")] pub name: Option<String>,
#[serde(default, rename = "ポンプ_能力")] pub capacity: Option<String>,
#[serde(default, rename = "ポンプ_単位")] pub unit: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct TowerType210 {
#[serde(default, rename = "櫓種類コード")] pub code: Option<String>,
#[serde(default, rename = "櫓種類名称")] pub name: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Core210 {
#[serde(rename = "土質岩種区分")] pub soil_rock_classifications: Vec<SoilRockClassification210>,
#[serde(default, rename = "色調")] pub colors: Vec<Color210>,
#[serde(default, rename = "観察記事")] pub observational_articles: Vec<ObservationalArticle210>,
#[serde(default, rename = "観察記事枠線")] pub observational_article_frames: Vec<ObservationalArticleFrame210>,
#[serde(default, rename = "標準貫入試験")] pub standard_penetration_tests: Vec<StandardPenetrationTest210>,
#[serde(default, rename = "標準貫入試験詳細データ")] pub standard_penetration_test_details: Vec<StandardPenetrationTestDetail210>,
#[serde(default, rename = "ルジオン試験")] pub lugeon_tests: Vec<LugeonTest210>,
#[serde(default, rename = "ルジオン試験詳細データ")] pub lugeon_test_details: Vec<LugeonTestDetail210>,
#[serde(default, rename = "相対密度稠度")] pub relative_density_consistency: Vec<RelativeDensityConsistency210>,
#[serde(default, rename = "硬軟区分判定表")] pub hardness_classification_table: Vec<HardnessClassificationTable210>,
#[serde(default, rename = "硬軟区分")] pub hardness_classifications: Vec<HardnessClassification210>,
#[serde(default, rename = "コア形状区分判定表")] pub core_shape_classification_table: Vec<CoreShapeClassificationTable210>,
#[serde(default, rename = "コア形状区分")] pub core_shape_classifications: Vec<CoreShapeClassification210>,
#[serde(default, rename = "割れ目区分判定表")] pub fracture_classification_table: Vec<FractureClassificationTable210>,
#[serde(default, rename = "割れ目区分")] pub fracture_classifications: Vec<FractureClassification210>,
#[serde(default, rename = "風化区分判定表")] pub weathering_classification_table: Vec<WeatheringClassificationTable210>,
#[serde(default, rename = "風化区分")] pub weathering_classifications: Vec<WeatheringClassification210>,
#[serde(default, rename = "変質区分判定表")] pub alteration_classification_table: Vec<AlterationClassificationTable210>,
#[serde(default, rename = "変質区分")] pub alteration_classifications: Vec<AlterationClassification210>,
#[serde(default, rename = "孔内水平載荷試験")] pub borehole_horizontal_load_tests: Vec<BoreholeHorizontalLoadTest210>,
#[serde(default, rename = "透水試験")] pub permeability_tests: Vec<PermeabilityTest210>,
#[serde(default, rename = "P波試験")] pub p_wave_tests: Vec<PWaveTest210>,
#[serde(default, rename = "S波試験")] pub s_wave_tests: Vec<SWaveTest210>,
#[serde(default, rename = "その他原位置試験")] pub other_in_situ_tests: Vec<OtherInSituTest210>,
#[serde(default, rename = "試料採取")] pub sample_collections: Vec<SampleCollection210>,
#[serde(default, rename = "地盤材料の工学的分類")] pub ground_material_classifications: Vec<GroundMaterialClassification210>,
#[serde(default, rename = "地質時代")] pub geological_ages: Vec<GeologicalAge210>,
#[serde(default, rename = "地層岩体区分")] pub stratum_rock_classifications: Vec<StratumRockClassification210>,
#[serde(default, rename = "孔内水位")] pub borehole_water_levels: Vec<BoreholeWaterLevel210>,
#[serde(default, rename = "掘削工程")] pub drilling_processes: Vec<DrillingProcess210>,
#[serde(default, rename = "孔径孔壁保護")] pub borehole_diameter_protections: Vec<BoreholeDiameterProtection210>,
#[serde(default, rename = "掘進速度")] pub drilling_speeds: Vec<DrillingSpeed210>,
#[serde(default, rename = "コアチューブビット")] pub core_tube_bits: Vec<CoreTubeBit210>,
#[serde(default, rename = "給圧条件")] pub pressure_conditions: Vec<PressureCondition210>,
#[serde(default, rename = "回転数")] pub rotation_speeds: Vec<RotationSpeed210>,
#[serde(default, rename = "送水条件")] pub water_supply_conditions: Vec<WaterSupplyCondition210>,
#[serde(default, rename = "断層破砕帯区分")] pub fault_fracture_zone_classifications: Vec<FaultFractureZoneClassification210>,
#[serde(default, rename = "コア採取率")] pub core_recovery_rates: Vec<CoreRecoveryRate210>,
#[serde(default, rename = "最大コア長")] pub maximum_core_lengths: Vec<MaximumCoreLength210>,
#[serde(default, rename = "RQD")] pub rqds: Vec<RQD210>,
#[serde(default, rename = "岩級区分判定表")] pub rock_class_classification_table: Vec<RockClassClassificationTable210>,
#[serde(default, rename = "岩級区分")] pub rock_class_classifications: Vec<RockClassClassification210>,
#[serde(default, rename = "保孔管")] pub casing_pipes: Vec<CasingPipe210>,
#[serde(default, rename = "計測機器")] pub measuring_instruments: Vec<MeasuringInstrument210>,
#[serde(default, rename = "地下水検層試験")] pub groundwater_logging_tests: Vec<GroundwaterLoggingTest210>,
#[serde(default, rename = "地下水検層試験詳細データ")] pub groundwater_logging_test_details: Vec<GroundwaterLoggingTestDetail210>,
#[serde(default, rename = "地下水検層試験判定結果")] pub groundwater_logging_test_results: Vec<GroundwaterLoggingTestResult210>,
#[serde(default, rename = "備考")] pub remarks: Vec<Remark210>,
#[serde(default, rename = "フリー情報")] pub free_info: Vec<FreeInfo>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SoilRockClassification210 {
#[serde(rename = "土質岩種区分_下端深度")] pub depth: Option<String>,
#[serde(rename = "土質岩種区分_土質岩種区分1")] pub classification1: Option<String>,
#[serde(default, rename = "土質岩種区分_土質岩種記号1")] pub code1: Option<String>,
#[serde(rename = "土質岩種区分_分類コード1")] pub classification_code1: Option<String>,
#[serde(default, rename = "土質岩種区分_土質岩種区分2")] pub classification2: Option<String>,
#[serde(default, rename = "土質岩種区分_土質岩種記号2")] pub code2: Option<String>,
#[serde(default, rename = "土質岩種区分_分類コード2")] pub classification_code2: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Color210 {
#[serde(rename = "色調_下端深度")] pub depth: Option<String>,
#[serde(rename = "色調_色調名")] pub color_name: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ObservationalArticle210 {
#[serde(rename = "観察記事_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "観察記事_下端深度")] pub end_depth: Option<String>,
#[serde(default, rename = "観察記事_記事")] pub observation: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ObservationalArticleFrame210 {
#[serde(rename = "観察記事枠線_下端深度")] pub end_depth: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct StandardPenetrationTest210 {
#[serde(rename = "標準貫入試験_開始深度")] pub start_depth: Option<String>,
#[serde(default, rename = "標準貫入試験_0_10打撃回数")] pub hits_0_10: Option<String>,
#[serde(default, rename = "標準貫入試験_0_10貫入量")] pub penetration_0_10: Option<String>,
#[serde(default, rename = "標準貫入試験_10_20打撃回数")] pub hits_10_20: Option<String>,
#[serde(default, rename = "標準貫入試験_10_20貫入量")] pub penetration_10_20: Option<String>,
#[serde(default, rename = "標準貫入試験_20_30打撃回数")] pub hits_20_30: Option<String>,
#[serde(default, rename = "標準貫入試験_20_30貫入量")] pub penetration_20_30: Option<String>,
#[serde(rename = "標準貫入試験_合計打撃回数")] pub total_hit_count: Option<String>,
#[serde(rename = "標準貫入試験_合計貫入量")] pub total_penetration: Option<String>,
#[serde(default, rename = "標準貫入試験_備考")] pub remarks: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct StandardPenetrationTestDetail210 {
#[serde(rename = "標準貫入試験詳細データ_開始深度")] pub start_depth: Option<String>,
#[serde(default, rename = "標準貫入試験詳細データ_打撃")] pub blows: Vec<StandardPenetrationTestBlow210>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct StandardPenetrationTestBlow210 {
#[serde(rename = "標準貫入試験詳細データ_打撃回数")] pub blow_count: Option<String>,
#[serde(rename = "標準貫入試験詳細データ_貫入量")] pub penetration: Option<String>,
#[serde(rename = "標準貫入試験詳細データ_累積貫入量")] pub cumulative_penetration: Option<String>,
#[serde(default, rename = "標準貫入試験詳細データ_備考")] pub remarks: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct LugeonTest210 {
#[serde(rename = "ルジオン試験_試験番号")] pub test_number: Option<String>,
#[serde(rename = "ルジオン試験_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "ルジオン試験_下端深度")] pub end_depth: Option<String>,
#[serde(rename = "ルジオン試験_圧力管理方法コード")] pub pressure_management_code: Option<String>,
#[serde(default, rename = "ルジオン試験_圧力管理方法")] pub pressure_management: Option<String>,
#[serde(rename = "ルジオン試験_圧力最大スケール")] pub pressure_max_scale: Option<String>,
#[serde(rename = "ルジオン試験_注入量最大スケール")] pub injection_max_scale: Option<String>,
#[serde(rename = "ルジオン試験_圧力開始点")] pub pressure_start_point: Option<String>,
#[serde(rename = "ルジオン試験_注入量開始点")] pub injection_start_point: Option<String>,
#[serde(rename = "ルジオン試験_ルジオン値区分")] pub lugeon_value_classification: Option<String>,
#[serde(rename = "ルジオン試験_ルジオン値")] pub lugeon_value: Option<String>,
#[serde(rename = "ルジオン試験_限界圧力")] pub limit_pressure: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct LugeonTestDetail210 {
#[serde(rename = "ルジオン試験詳細データ_試験番号")] pub test_number: Option<String>,
#[serde(rename = "ルジオン試験詳細データ_有効圧力")] pub effective_pressure: Option<String>,
#[serde(rename = "ルジオン試験詳細データ_注入量")] pub injection_amount: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RelativeDensityConsistency210 {
#[serde(rename = "相対密度稠度_下端深度")] pub depth: Option<String>,
#[serde(default, rename = "相対密度_コード")] pub relative_density_code: Option<String>,
#[serde(default, rename = "相対密度_状態")] pub relative_density_state: Option<String>,
#[serde(default, rename = "相対稠度_コード")] pub relative_consistency_code: Option<String>,
#[serde(default, rename = "相対稠度_状態")] pub relative_consistency_state: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct HardnessClassificationTable210 {
#[serde(rename = "硬軟区分判定表_コード")] pub code: Option<String>,
#[serde(rename = "硬軟区分判定表_記号")] pub symbol: Option<String>,
#[serde(default, rename = "硬軟区分判定表_区分")] pub classification: Option<String>,
#[serde(default, rename = "硬軟区分判定表_説明")] pub description: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct HardnessClassification210 {
#[serde(rename = "硬軟区分_下端深度")] pub depth: Option<String>,
#[serde(rename = "硬軟区分_硬軟区分")] pub classification: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CoreShapeClassificationTable210 {
#[serde(rename = "コア形状区分判定表_コード")] pub code: Option<String>,
#[serde(rename = "コア形状区分判定表_記号")] pub symbol: Option<String>,
#[serde(default, rename = "コア形状区分判定表_区分")] pub classification: Option<String>,
#[serde(default, rename = "コア形状区分判定表_説明")] pub description: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CoreShapeClassification210 {
#[serde(rename = "コア形状区分_下端深度")] pub depth: Option<String>,
#[serde(rename = "コア形状区分_コア形状区分")] pub classification: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct FractureClassificationTable210 {
#[serde(rename = "割れ目区分判定表_コード")] pub code: Option<String>,
#[serde(rename = "割れ目区分判定表_記号")] pub symbol: Option<String>,
#[serde(default, rename = "割れ目区分判定表_区分")] pub classification: Option<String>,
#[serde(default, rename = "割れ目区分判定表_説明")] pub description: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct FractureClassification210 {
#[serde(rename = "割れ目区分_下端深度")] pub depth: Option<String>,
#[serde(rename = "割れ目区分_割れ目区分")] pub classification: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct WeatheringClassificationTable210 {
#[serde(rename = "風化区分判定表_コード")] pub code: Option<String>,
#[serde(rename = "風化区分判定表_記号")] pub symbol: Option<String>,
#[serde(default, rename = "風化区分判定表_区分")] pub classification: Option<String>,
#[serde(default, rename = "風化区分判定表_説明")] pub description: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct WeatheringClassification210 {
#[serde(rename = "風化区分_下端深度")] pub depth: Option<String>,
#[serde(rename = "風化区分_風化区分")] pub classification: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct AlterationClassificationTable210 {
#[serde(rename = "変質区分判定表_コード")] pub code: Option<String>,
#[serde(rename = "変質区分判定表_記号")] pub symbol: Option<String>,
#[serde(default, rename = "変質区分判定表_区分")] pub classification: Option<String>,
#[serde(default, rename = "変質区分判定表_説明")] pub description: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct AlterationClassification210 {
#[serde(rename = "変質区分_下端深度")] pub depth: Option<String>,
#[serde(rename = "変質区分_変質区分")] pub classification: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BoreholeHorizontalLoadTest210 {
#[serde(rename = "孔内水平載荷試験_試験深度")] pub test_depth: Option<String>,
#[serde(rename = "孔内水平載荷試験_試験方法コード")] pub test_method_code: Option<String>,
#[serde(default, rename = "孔内水平載荷試験_試験方法")] pub test_method: Option<String>,
#[serde(default, rename = "孔内水平載荷試験_載荷パターン")] pub load_pattern: Option<String>,
#[serde(rename = "孔内水平載荷試験_初期圧")] pub initial_pressure: Option<String>,
#[serde(rename = "孔内水平載荷試験_降伏圧")] pub yield_pressure: Option<String>,
#[serde(rename = "孔内水平載荷試験_変形係数")] pub deformation_modulus: Option<String>,
#[serde(default, rename = "孔内水平載荷試験_割線弾性係数")] pub secant_modulus: Option<String>,
#[serde(default, rename = "孔内水平載荷試験_接線弾性係数")] pub tangent_modulus: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct PermeabilityTest210 {
#[serde(rename = "透水試験_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "透水試験_下端深度")] pub end_depth: Option<String>,
#[serde(rename = "透水試験_試験コード")] pub test_code: Option<String>,
#[serde(default, rename = "透水試験_試験方法")] pub test_method: Option<String>,
#[serde(rename = "透水試験_透水係数")] pub permeability_coefficient: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct PWaveTest210 {
#[serde(rename = "P波試験_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "P波試験_下端深度")] pub end_depth: Option<String>,
#[serde(default, rename = "P波試験_起振方式")] pub excitation_method: Option<String>,
#[serde(rename = "P波試験_速度")] pub velocity: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SWaveTest210 {
#[serde(rename = "S波試験_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "S波試験_下端深度")] pub end_depth: Option<String>,
#[serde(default, rename = "S波試験_起振方式")] pub excitation_method: Option<String>,
#[serde(rename = "S波試験_速度")] pub velocity: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct OtherInSituTest210 {
#[serde(rename = "その他原位置試験_試験名")] pub test_name: Option<String>,
#[serde(rename = "その他原位置試験_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "その他原位置試験_下端深度")] pub end_depth: Option<String>,
#[serde(rename = "その他原位置試験_試験結果")] pub test_result: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SampleCollection210 {
#[serde(rename = "試料採取_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "試料採取_下端深度")] pub end_depth: Option<String>,
#[serde(rename = "試料採取_試料番号")] pub sample_number: Option<String>,
#[serde(rename = "試料採取_採取方法コード")] pub collection_method_code: Option<String>,
#[serde(default, rename = "試料採取_採取方法")] pub collection_method: Option<String>,
#[serde(default, rename = "試料採取_試験名")] pub test_names: Vec<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GroundMaterialClassification210 {
#[serde(rename = "地盤分類_下端深度")] pub depth: Option<String>,
#[serde(default, rename = "地盤分類_工学的分類記号")] pub engineering_classification_symbol: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GeologicalAge210 {
#[serde(rename = "地質時代_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "地質時代_下端深度")] pub end_depth: Option<String>,
#[serde(rename = "地質時代_コード")] pub code: Option<String>,
#[serde(default, rename = "地質時代_時代名")] pub age_name: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct StratumRockClassification210 {
#[serde(rename = "地層岩体区分_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "地層岩体区分_下端深度")] pub end_depth: Option<String>,
#[serde(default, rename = "地層岩体区分_地層岩体名")] pub stratum_rock_name: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BoreholeWaterLevel210 {
#[serde(rename = "孔内水位_測定年月日")] pub measurement_date: Option<String>,
#[serde(rename = "孔内水位_掘削状況コード")] pub drilling_status_code: Option<String>,
#[serde(default, rename = "孔内水位_掘削状況")] pub drilling_status: Option<String>,
#[serde(rename = "孔内水位_孔内水位")] pub water_level: Option<String>,
#[serde(default, rename = "孔内水位_水位種別コード")] pub water_level_type_code: Option<String>,
#[serde(default, rename = "孔内水位_水位種別備考")] pub water_level_type_remarks: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct DrillingProcess210 {
#[serde(rename = "掘削工程_測定年月日")] pub measurement_date: Option<String>,
#[serde(rename = "掘削工程_掘進深度")] pub drilling_depth: Option<String>,
#[serde(default, rename = "掘削工程_ケーシング下端深度")] pub casing_bottom_depth: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BoreholeDiameterProtection210 {
#[serde(rename = "孔径孔壁保護_下端深度")] pub depth: Option<String>,
#[serde(rename = "孔径孔壁保護_孔径")] pub diameter: Option<String>,
#[serde(default, rename = "孔径孔壁保護_孔壁保護コード")] pub wall_protection_code: Option<String>,
#[serde(default, rename = "孔径孔壁保護_孔壁保護方法")] pub wall_protection_method: Option<String>,
#[serde(default, rename = "孔径孔壁保護_孔壁保護実施理由")] pub wall_protection_reason: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct DrillingSpeed210 {
#[serde(rename = "掘進速度_下端深度")] pub depth: Option<String>,
#[serde(rename = "掘進速度_掘進速度")] pub speed: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CoreTubeBit210 {
#[serde(rename = "コアチューブビット_下端深度")] pub depth: Option<String>,
#[serde(default, rename = "コアチューブビット_コアチューブ名")] pub core_tube_name: Option<String>,
#[serde(default, rename = "コアチューブビット_ビット名")] pub bit_name: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct PressureCondition210 {
#[serde(rename = "給圧条件_下端深度")] pub depth: Option<String>,
#[serde(rename = "給圧条件_給圧")] pub pressure: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RotationSpeed210 {
#[serde(rename = "回転数_下端深度")] pub depth: Option<String>,
#[serde(rename = "回転数_回転数")] pub rotation_speed: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct WaterSupplyCondition210 {
#[serde(rename = "送水条件_下端深度")] pub depth: Option<String>,
#[serde(rename = "送水条件_送水圧")] pub water_pressure: Option<String>,
#[serde(rename = "送水条件_送水量")] pub water_supply_volume: Option<String>,
#[serde(rename = "送水条件_排水量")] pub drainage_volume: Option<String>,
#[serde(rename = "送水条件_送水種類コード")] pub water_type_code: Option<String>,
#[serde(default, rename = "送水条件_送水種類")] pub water_type: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct FaultFractureZoneClassification210 {
#[serde(rename = "断層破砕帯区分_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "断層破砕帯区分_下端深度")] pub end_depth: Option<String>,
#[serde(rename = "断層破砕帯区分_性状コード")] pub property_code: Option<String>,
#[serde(default, rename = "断層破砕帯区分_性状")] pub property: Option<String>,
#[serde(default, rename = "断層破砕帯区分_備考")] pub remarks: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CoreRecoveryRate210 {
#[serde(rename = "コア採取率_下端深度")] pub depth: Option<String>,
#[serde(rename = "コア採取率_採取率")] pub recovery_rate: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct MaximumCoreLength210 {
#[serde(rename = "最大コア長_下端深度")] pub depth: Option<String>,
#[serde(rename = "最大コア長_コア長")] pub core_length: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RQD210 {
#[serde(rename = "RQD_下端深度")] pub depth: Option<String>,
#[serde(default, rename = "RQD_RQD")] pub rqd: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RockClassClassificationTable210 {
#[serde(default, rename = "岩級区分判定表_項目名")] pub item_names: Vec<String>,
#[serde(default, rename = "岩級区分判定表_判定")] pub judgments: Vec<RockClassJudgment210>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RockClassJudgment210 {
#[serde(rename = "岩級区分判定表_コード")] pub code: Option<String>,
#[serde(rename = "岩級区分判定表_記号")] pub symbol: Option<String>,
#[serde(default, rename = "岩級区分判定表_説明")] pub descriptions: Vec<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RockClassClassification210 {
#[serde(rename = "岩級区分_下端深度")] pub depth: Option<String>,
#[serde(rename = "岩級区分_岩級区分")] pub classification: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CasingPipe210 {
#[serde(rename = "保孔管_下端深度")] pub depth: Option<String>,
#[serde(rename = "保孔管_種別コード")] pub type_code: Option<String>,
#[serde(default, rename = "保孔管_備考")] pub remarks: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct MeasuringInstrument210 {
#[serde(rename = "計測機器_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "計測機器_下端深度")] pub end_depth: Option<String>,
#[serde(rename = "計測機器_機器種別")] pub instrument_type: Option<String>,
#[serde(default, rename = "計測機器_備考")] pub remarks: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GroundwaterLoggingTest210 {
#[serde(rename = "地下水検層試験_試験番号")] pub test_number: Option<String>,
#[serde(rename = "地下水検層試験_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "地下水検層試験_下端深度")] pub end_depth: Option<String>,
#[serde(rename = "地下水検層試験_掘削深度")] pub drilling_depth: Option<String>,
#[serde(rename = "地下水検層試験_孔内水位")] pub water_level: Option<String>,
#[serde(rename = "地下水検層試験_試験方法コード")] pub test_method_code: Option<String>,
#[serde(rename = "地下水検層試験_電解質溶液濃度")] pub electrolyte_concentration: Option<String>,
#[serde(default, rename = "地下水検層試験_測定時間")] pub measurement_times: Vec<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GroundwaterLoggingTestDetail210 {
#[serde(rename = "地下水検層試験詳細データ_試験番号")] pub test_number: Option<String>,
#[serde(rename = "地下水検層試験詳細データ_測定深度")] pub measurement_depth: Option<String>,
#[serde(default, rename = "地下水検層試験詳細データ_比抵抗値")] pub resistivity_values: Vec<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GroundwaterLoggingTestResult210 {
#[serde(rename = "地下水検層試験判定結果_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "地下水検層試験判定結果_下端深度")] pub end_depth: Option<String>,
#[serde(rename = "地下水検層試験判定結果_地下水検層結果")] pub result: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Remark210 {
#[serde(rename = "備考_タイトル")] pub title: Option<String>,
#[serde(rename = "備考_上端深度")] pub start_depth: Option<String>,
#[serde(rename = "備考_下端深度")] pub end_depth: Option<String>,
#[serde(rename = "備考_備考内容")] pub content: Option<String>,
}
impl ClassificationInfo for SoilRockClassification210 {
fn rock_groups(&self) -> Vec<RockGroupInfo> {
let mut constituents = Vec::new();
if let Some(name) = &self.classification1
&& !name.is_empty()
{
constituents.push(Constituent::Named {
name: name.clone(),
symbol: self.code1.clone(),
});
}
if let Some(name) = &self.classification2
&& !name.is_empty()
{
constituents.push(Constituent::Named {
name: name.clone(),
symbol: self.code2.clone(),
});
}
let code = if constituents.len() > 1 {
RockGroupCode::Interbedded
} else {
RockGroupCode::Single
};
vec![RockGroupInfo { code, constituents }]
}
}