-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add BuildingDataQualityAttribute struct and integrate it into existing models #40
Conversation
WalkthroughThis pull request introduces enhancements to the data modeling for geographic and building information systems. The changes focus on expanding the data quality attribute structures across multiple files in the Changes
Possibly related PRs
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (3)
nusamai-plateau/src/models/iur/uro/dem.rs (1)
5-9
: LGTM! Consider adding documentation.The struct definition follows the CityGML feature pattern correctly. The field type and annotations are consistent with the codebase patterns.
Consider adding documentation comments to describe the purpose of this struct and its field, especially since it's a new feature:
#[citygml_feature(name = "uro:demDataQualityAttribute")] +/// Represents quality attributes specific to DEM (Digital Elevation Model) data pub struct DemDataQualityAttribute { #[citygml(path = b"uro:DataQualityAttribute", required)] + /// The core quality attributes for the DEM data pub data_quality_attribute: Option<DataQualityAttribute>, }nusamai-plateau/src/models/relief.rs (1)
15-16
: LGTM! Consider adding field documentation.The integration of DemDataQualityAttribute is correct and consistent with the struct's pattern.
Consider adding documentation for the new field:
#[citygml(path = b"uro:demDataQualityAttribute", required)] + /// Quality attributes specific to the DEM data of this relief feature pub dem_data_quality_attribute: Option<uro::DemDataQualityAttribute>,
nusamai-plateau/src/models/iur/uro/common.rs (1)
80-82
: LGTM! Consider adding field documentation.The field integration into DataQualityAttribute is correct and follows the established pattern.
Consider adding documentation for the new field:
#[citygml(path = b"uro:BuildingDataQualityAttribute")] + /// Building-specific quality attributes that complement the general data quality information pub building_data_quality_attribute: Option<BuildingDataQualityAttribute>,
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
nusamai-plateau/src/models/iur/uro/common.rs
(1 hunks)nusamai-plateau/src/models/iur/uro/dem.rs
(1 hunks)nusamai-plateau/src/models/iur/uro/mod.rs
(2 hunks)nusamai-plateau/src/models/iur/uro/underground_building.rs
(1 hunks)nusamai-plateau/src/models/relief.rs
(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: ci
🔇 Additional comments (3)
nusamai-plateau/src/models/iur/uro/mod.rs (1)
7-7
: LGTM!The module declaration and re-export are correctly placed in alphabetical order, maintaining the file's organization.
Also applies to: 28-28
nusamai-plateau/src/models/iur/uro/common.rs (1)
84-99
: Consider documenting the relationship with DataQualityAttribute.The struct appears to duplicate some fields from DataQualityAttribute. It would be helpful to document why these fields are repeated and how they relate to the parent struct's fields.
Let's analyze the field usage pattern:
Also, consider adding documentation:
#[citygml_data(name = "uro:BuildingDataQualityAttribute")] +/// Represents quality attributes specific to building data +/// +/// Note: Some fields mirror those in DataQualityAttribute but are specific to building context: +/// - src_scale: Scale information specific to building data +/// - geometry_src_desc: Geometry source description for building features +/// - appearance_src_desc: Appearance source description for building features +/// - lod1_height_type: Height type information for LOD1 building models +/// - lod_type: LOD type information specific to building features pub struct BuildingDataQualityAttribute { #[citygml(path = b"uro:srcScale")] + /// Scale information specific to building data pub src_scale: Vec<Code>,✅ Verification successful
BuildingDataQualityAttribute extends DataQualityAttribute with building-specific fields
The relationship is now clear - BuildingDataQualityAttribute inherits common fields from DataQualityAttribute (marked for PLATEAU 3.x compatibility) and adds building-specific fields (lod1_height_type, lod_type). Consider adding documentation:
/// Building-specific data quality attributes that extends the base DataQualityAttribute /// /// This struct maintains compatibility with PLATEAU 3.x through common fields inherited /// from DataQualityAttribute while adding building-specific attributes: /// - lod1_height_type: Height type information for LOD1 building models /// - lod_type: LOD type information specific to building features #[citygml_data(name = "uro:BuildingDataQualityAttribute")] pub struct BuildingDataQualityAttribute { // ... }🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Find all usages of BuildingDataQualityAttribute to understand the relationship rg -A 5 "BuildingDataQualityAttribute" --type rustLength of output: 2874
Script:
#!/bin/bash # Find DataQualityAttribute definition rg -B 2 -A 10 "struct DataQualityAttribute" --type rustLength of output: 1053
nusamai-plateau/src/models/iur/uro/underground_building.rs (1)
63-64
: Potential duplication with existing field.The new field
building_data_quality_attribute
appears to overlap with the existingbldg_data_quality_attribute
field, as both:
- Have similar names (building vs bldg)
- Share the same type
Option<uro::DataQualityAttribute>
- Have similar citygml paths (
uro:buildingDataQualityAttribute
)This could lead to confusion about which field should be used.
Let's verify the intended usage and potential duplication:
Summary by CodeRabbit
New Features
Chores