Skip to content

Conversation

@JackDrogon
Copy link
Contributor

Enhance Metadata API with comprehensive feature alignment

  • Align C++ Metadata struct with Rust implementation for full feature parity
  • Add missing fields: content_encoding, version, is_current, is_deleted
  • Implement comprehensive accessor methods with detailed documentation
  • Add extensive BDD-style test suite with 20 test cases covering:
    • File and directory metadata behavior
    • HTTP headers and optional fields handling
    • Versioning information and deletion status
    • API consistency and object lifecycle
    • Timestamp behavior and edge cases
    • Error handling and robustness testing
  • Update FFI layer with OptionalBool type for proper type mapping
  • Enhance type conversion between Rust and C++ representations
  • Maintain backward compatibility while extending functionality

…lignment

- Align C++ Metadata struct with Rust implementation for full feature parity
- Add missing fields: content_encoding, version, is_current, is_deleted
- Implement comprehensive accessor methods with detailed documentation
- Add extensive BDD-style test suite with 20 test cases covering:
  * File and directory metadata behavior
  * HTTP headers and optional fields handling
  * Versioning information and deletion status
  * API consistency and object lifecycle
  * Timestamp behavior and edge cases
  * Error handling and robustness testing
- Update FFI layer with OptionalBool type for proper type mapping
- Enhance type conversion between Rust and C++ representations
- Maintain backward compatibility while extending functionality

Signed-off-by: Jack Drogon <[email protected]>
@JackDrogon JackDrogon requested a review from Xuanwo as a code owner July 28, 2025 13:56
@dosubot dosubot bot added size:XL This PR changes 500-999 lines, ignoring generated files. releases-note/feat The PR implements a new feature or has a title that begins with "feat" labels Jul 28, 2025
@JackDrogon
Copy link
Contributor Author

JackDrogon commented Jul 28, 2025

@Xuanwo @deadlinefen need a review

Copy link
Member

@Xuanwo Xuanwo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Others LGTM

…etadata

- Replace constructor initialization list with in-class member initializers
- Use brace initialization syntax for default values
- Mark constructor and destructor as default
- Improve code consistency with modern C++ practices

Signed-off-by: Jack Drogon <[email protected]>
Copy link
Member

@Xuanwo Xuanwo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @JackDrogon for working on this!

@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Jul 29, 2025
@Xuanwo Xuanwo merged commit c0332c2 into apache:main Jul 29, 2025
34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer releases-note/feat The PR implements a new feature or has a title that begins with "feat" size:XL This PR changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants