Skip to content

Conversation

@amunra
Copy link
Collaborator

@amunra amunra commented Oct 15, 2025

This PR has no intended behaviour changes.

It instead:

  • Upgrades all crate dependencies (except for ndarray, since it was just released yesterday).
  • Upgrades the Rust language version from 2021 to 2024.

All code changes are mechanical "make the compiler happy" changes.

Summary by CodeRabbit

  • Refactor
    • Consolidated unsafe handling and internal construction patterns; public APIs remain the same.
  • Chores
    • Updated Rust edition and refreshed networking/TLS dependency versions; clarified build-time messages.
  • Tests
    • Reorganized and reformatted test suites; system test now disables nanos support temporarily.
  • Style
    • Broad import reordering and formatting cleanups across code and examples.
@coderabbitai
Copy link

coderabbitai bot commented Oct 15, 2025

Walkthrough

FFI crate bumped to Rust 2024 and refactored to mark many exports as unsafe and wrap raw-pointer ops in explicit unsafe blocks; core crate dependencies updated and minor build formatting applied; assorted import/order/formatting tweaks across examples and tests; system_test now forces client_driven_nanos_supported = False.

Changes

Cohort / File(s) Summary
FFI safety refactor & edition bump
questdb-rs-ffi/Cargo.toml, questdb-rs-ffi/src/lib.rs, questdb-rs-ffi/src/ndarr.rs
Edition → 2024; many C-ABI exports annotated #[unsafe(no_mangle)] and declared pub unsafe extern "C" fn ...; function bodies and ndarr constructors moved into explicit unsafe { ... } blocks for raw-pointer/FFI ops; external signatures preserved.
Core crate dependency and build changes
questdb-rs/Cargo.toml, questdb-rs/build.rs
Dependency version bumps (socket2, dns-lookup, rustls-* , webpki-roots, ureq, rstest, etc.); compile_error! strings reformatted; no API signature changes.
Socket/TLS and sender adjustments
questdb-rs/src/ingress/sender/tcp.rs, questdb-rs/src/ingress/sender/http.rs
TCP: set_nodelay(true)set_tcp_nodelay(true) and import regrouping; HTTP: small pattern-match/ownership adjustments when parsing JSON/server settings; behavior preserved.
Imports, formatting, and minor refactors
questdb-rs/src/ingress/mod.rs, .../buffer.rs, .../ndarr.rs, .../tls.rs, .../tests.rs, questdb-rs/src/tests/*, questdb-rs/examples/*
Widespread import reorderings, grouping, whitespace/formatting changes, minor error/assert message reflows and small refactors; no public API changes.
Test harness change
system_test/test.py
client_driven_nanos_supported short-circuited to always return False (original logic commented out), altering runtime test behavior for nanos support.

Sequence Diagram(s)

sequenceDiagram participant C as C caller participant FFI as questdb-rs-ffi participant Unsafe as explicit unsafe block participant Rust as Rust internals C ->> FFI: call extern "C" fn (#[unsafe(no_mangle)]) Note right of FFI #eef7ff: export annotation and signature changed to unsafe FFI ->> Unsafe: enter unsafe { ... } for pointer/FFI ops Unsafe ->> Rust: raw pointer deref / conversions / logic Rust -->> Unsafe: result / error structs Unsafe -->> FFI: prepare return (FFI types) FFI -->> C: return to caller (ABI preserved) 
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • bluestreak01

Poem

In burrows of bytes I softly hop,
I tuck raw pointers into an unsafe crop.
Exports keep pace, the signatures true,
I nibble at bugs and tidy the glue.
Hooray — a safer carrot for you! 🐰

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title succinctly describes that the pull request updates dependencies and the language edition without introducing behavioral changes, matching the PR’s main objectives.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch housekeeping

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4fe5716 and 29c4492.

⛔ Files ignored due to path filters (1)
  • questdb-rs-ffi/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • questdb-rs/Cargo.toml (3 hunks)
  • questdb-rs/src/ingress/tls.rs (3 hunks)
  • questdb-rs/src/tests/mock.rs (2 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-10-15T11:51:07.416Z
Learnt from: amunra PR: questdb/c-questdb-client#124 File: questdb-rs-ffi/Cargo.toml:4-4 Timestamp: 2025-10-15T11:51:07.416Z Learning: In the questdb/c-questdb-client repository, explicit MSRV pinning via `rust-version` field in Cargo.toml or `rust-toolchain` files is not required. The project accepts that older compilers will error out when encountering unsupported editions, and this is the preferred approach. 

Applied to files:

  • questdb-rs/Cargo.toml
🧬 Code graph analysis (2)
questdb-rs/src/ingress/tls.rs (2)
questdb-rs/src/error.rs (1)
  • fmt (136-138)
questdb-rs/src/tests/mock.rs (1)
  • CertificateDer (78-79)
questdb-rs/src/tests/mock.rs (1)
questdb-rs/src/ingress/tls.rs (1)
  • CertificateDer (195-196)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
  • GitHub Check: questdb.c-questdb-client (Building and testing on windows-msvc-2019)
  • GitHub Check: questdb.c-questdb-client (Building and testing on windows-msvc-2022)
  • GitHub Check: questdb.c-questdb-client (Building and testing on mac)
  • GitHub Check: questdb.c-questdb-client (Building and testing on linux-nightly)
  • GitHub Check: questdb.c-questdb-client (Building and testing on linux-beta)
  • GitHub Check: questdb.c-questdb-client (Building and testing on linux-stable)
  • GitHub Check: questdb.c-questdb-client (Building and testing on linux)
  • GitHub Check: questdb.c-questdb-client (Building and testing cargo fmt and clippy)
  • GitHub Check: questdb.c-questdb-client (Building and testing Vs QuestDB 'master')
🔇 Additional comments (9)
questdb-rs/Cargo.toml (4)

4-4: LGTM! Edition and homepage updates.

The Rust 2024 edition upgrade and homepage URL update align with the PR objectives.

Also applies to: 7-7


22-23: LGTM! Dependency upgrades address previous feedback.

The rustls-pki-types upgrade to 1.12.0 addresses the previous review comment about replacing the archived rustls-pemfile package. The coordinated code changes in tls.rs and mock.rs demonstrate the migration to the new PEM reading API (CertificateDer::pem_reader_iter, PrivateKeyDer::from_pem_reader).

The major version bumps (socket2, dns-lookup, rustls-pki-types) align with the PR's stated mechanical adjustments for Rust 2024 compatibility.

Based on learnings

Also applies to: 29-32


37-37: LGTM! Tighter ureq version constraint.

The updated constraint "3.1.2, <3.2.0" is more restrictive and aligns with the in-code comment explaining that ureq::unversioned doesn't respect semantic versioning.


53-53: LGTM! Dev dependency updates.

The socket2 update maintains consistency with the runtime dependency, and the rstest minor version bump is a low-risk dev-only change.

Also applies to: 58-58

questdb-rs/src/ingress/tls.rs (3)

1-1: LGTM! Import updates for PEM API migration.

The import reordering and addition of rustls_pki_types::pem::PemObject support the migration from the archived rustls-pemfile to rustls-pki-types.

Also applies to: 5-5


147-150: LGTM! Error message formatting improvements.

The multi-line formatting of error messages improves readability without changing the message content.

Also applies to: 158-161, 169-172, 176-179


194-195: LGTM! PEM reading migrated to rustls-pki-types.

The migration from rustls_pemfile::certs to CertificateDer::pem_reader_iter correctly implements the new PEM reading API while preserving error handling.

questdb-rs/src/tests/mock.rs (2)

31-33: LGTM! Imports updated for PEM API migration.

The addition of rustls_pki_types imports and removal of BufReader align with the migration to the new PEM reading API.

Also applies to: 36-36


75-82: LGTM! Certificate and key loading migrated to rustls-pki-types.

The migration to CertificateDer::pem_reader_iter and PrivateKeyDer::from_pem_reader correctly updates the test TLS configuration setup while preserving error handling.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (3)
questdb-rs/Cargo.toml (2)

4-4: Edition 2024 → pin rust-version/MSRV.

Recommend adding rust-version (e.g., "1.84") to avoid accidental older compilers in CI/users.

Use the same script provided for the FFI crate to confirm workspace/toolchain pinning.


32-34: Align dev/runtime versions to avoid duplicate crates.

Runtime webpki-roots is 1.0.3 but dev-deps have 1.0.1; likewise chrono 0.4.40 vs dev 0.4.31. Aligning reduces duplicate versions and potential feature mismatches.

Also applies to: 54-54

questdb-rs-ffi/src/ndarr.rs (1)

119-121: Minor: simplify Option init for slice.

Use then_some for brevity.

- let mut slice = None; - if len != 0 { - slice = Some(slice::from_raw_parts(data, len)); - } + let slice = (len != 0).then_some(slice::from_raw_parts(data, len));

And similarly for data_len.

Also applies to: 336-339

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 31be512 and 2f32dc0.

⛔ Files ignored due to path filters (1)
  • questdb-rs-ffi/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (23)
  • questdb-rs-ffi/Cargo.toml (1 hunks)
  • questdb-rs-ffi/src/lib.rs (42 hunks)
  • questdb-rs-ffi/src/ndarr.rs (7 hunks)
  • questdb-rs/Cargo.toml (4 hunks)
  • questdb-rs/build.rs (1 hunks)
  • questdb-rs/examples/auth.rs (1 hunks)
  • questdb-rs/examples/auth_tls.rs (1 hunks)
  • questdb-rs/examples/basic.rs (1 hunks)
  • questdb-rs/examples/from_conf.rs (1 hunks)
  • questdb-rs/examples/from_env.rs (1 hunks)
  • questdb-rs/examples/http.rs (1 hunks)
  • questdb-rs/examples/protocol_version.rs (1 hunks)
  • questdb-rs/src/ingress/buffer.rs (1 hunks)
  • questdb-rs/src/ingress/mod.rs (8 hunks)
  • questdb-rs/src/ingress/ndarr.rs (11 hunks)
  • questdb-rs/src/ingress/sender/http.rs (5 hunks)
  • questdb-rs/src/ingress/sender/tcp.rs (3 hunks)
  • questdb-rs/src/ingress/tests.rs (2 hunks)
  • questdb-rs/src/ingress/tls.rs (2 hunks)
  • questdb-rs/src/tests/http.rs (2 hunks)
  • questdb-rs/src/tests/mock.rs (1 hunks)
  • questdb-rs/src/tests/ndarr.rs (2 hunks)
  • questdb-rs/src/tests/sender.rs (9 hunks)
🧰 Additional context used
🧬 Code graph analysis (15)
questdb-rs/src/ingress/tls.rs (1)
questdb-rs/src/error.rs (1)
  • fmt (136-138)
questdb-rs/src/ingress/tests.rs (1)
questdb-rs/src/error.rs (1)
  • msg (130-132)
questdb-rs/src/tests/http.rs (3)
questdb-rs/src/tests/mock.rs (1)
  • certs_dir (64-69)
questdb-rs/src/tests/mod.rs (1)
  • assert_err_contains (43-68)
questdb-rs/src/error.rs (1)
  • msg (130-132)
questdb-rs/src/ingress/sender/tcp.rs (2)
questdb-rs/src/ingress/tls.rs (1)
  • configure_tls (214-259)
questdb-rs/src/ingress/mod.rs (2)
  • map_io_to_socket_err (100-102)
  • parse_key_pair (1270-1299)
questdb-rs/examples/auth.rs (1)
system_test/questdb_line_sender.py (2)
  • Sender (828-990)
  • TimestampNanos (630-632)
questdb-rs/src/ingress/buffer.rs (1)
questdb-rs/src/ingress/ndarr.rs (1)
  • check_and_get_array_bytes_size (111-142)
questdb-rs-ffi/src/lib.rs (6)
questdb-rs/src/error.rs (3)
  • msg (130-132)
  • new (92-97)
  • from (144-146)
questdb-rs/src/ingress/buffer.rs (21)
  • len (523-525)
  • new (97-102)
  • new (181-188)
  • new (204-263)
  • new (303-350)
  • new (486-488)
  • set_marker (558-571)
  • rewind_to_marker (577-588)
  • table (671-706)
  • symbol (755-770)
  • as_str (119-125)
  • column_bool (822-830)
  • column_i64 (862-873)
  • column_f64 (905-920)
  • column_str (967-976)
  • column_ts (1142-1165)
  • at (1205-1238)
  • at_now (1269-1275)
  • check_can_flush (626-628)
  • protocol_version (510-512)
  • transactional (535-537)
questdb-rs-ffi/src/ndarr.rs (10)
  • new (109-129)
  • new (328-347)
  • std (126-126)
  • std (344-344)
  • std (373-373)
  • std (377-377)
  • std (474-474)
  • std (781-781)
  • std (836-836)
  • std (864-864)
questdb-rs/src/ingress/mod.rs (10)
  • new (593-640)
  • from_conf (386-561)
  • from_env (567-572)
  • protocol_version (748-752)
  • from (147-149)
  • from (153-155)
  • from (159-161)
  • max_buf_size (817-827)
  • max_name_len (834-843)
  • build (1031-1181)
questdb-rs/src/ingress/sender/mod.rs (9)
  • new (76-91)
  • new_buffer (132-134)
  • from_conf (115-117)
  • from_env (127-129)
  • protocol_version (287-289)
  • max_name_len (297-299)
  • flush (268-272)
  • flush_and_keep (242-244)
  • flush_and_keep_with_flags (233-235)
questdb-rs/src/ingress/timestamp.rs (7)
  • new (125-127)
  • new (206-208)
  • from (249-251)
  • from (270-272)
  • from (276-278)
  • now (119-121)
  • now (200-202)
questdb-rs/examples/from_conf.rs (1)
system_test/questdb_line_sender.py (2)
  • Sender (828-990)
  • TimestampNanos (630-632)
questdb-rs/examples/basic.rs (1)
system_test/questdb_line_sender.py (2)
  • Sender (828-990)
  • TimestampNanos (630-632)
questdb-rs/examples/auth_tls.rs (1)
system_test/questdb_line_sender.py (2)
  • Sender (828-990)
  • TimestampNanos (630-632)
questdb-rs/src/ingress/mod.rs (1)
questdb-rs/src/error.rs (1)
  • fmt (136-138)
questdb-rs-ffi/src/ndarr.rs (1)
questdb-rs/src/error.rs (1)
  • msg (130-132)
questdb-rs/src/tests/ndarr.rs (1)
questdb-rs/src/ingress/ndarr.rs (1)
  • write_array_data (49-109)
questdb-rs/examples/protocol_version.rs (1)
system_test/questdb_line_sender.py (2)
  • Sender (828-990)
  • TimestampNanos (630-632)
questdb-rs/src/tests/sender.rs (3)
system_test/questdb_line_sender.py (3)
  • TimestampMicros (625-627)
  • TimestampNanos (630-632)
  • CertificateAuthority (90-94)
questdb-rs/src/tests/mod.rs (1)
  • assert_err_contains (43-68)
questdb-rs/src/tests/mock.rs (1)
  • certs_dir (64-69)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
  • GitHub Check: questdb.c-questdb-client (Building and testing on windows-msvc-2019)
  • GitHub Check: questdb.c-questdb-client (Building and testing on windows-msvc-2022)
  • GitHub Check: questdb.c-questdb-client (Building and testing on mac)
  • GitHub Check: questdb.c-questdb-client (Building and testing on linux-nightly)
  • GitHub Check: questdb.c-questdb-client (Building and testing on linux-beta)
  • GitHub Check: questdb.c-questdb-client (Building and testing on linux-stable)
  • GitHub Check: questdb.c-questdb-client (Building and testing Vs QuestDB 'master')
  • GitHub Check: questdb.c-questdb-client (Building and testing cargo fmt and clippy)
  • GitHub Check: questdb.c-questdb-client (Building and testing on linux)
🔇 Additional comments (37)
questdb-rs/build.rs (1)

281-288: LGTM: formatting-only rewrap of compile_error! messages.

No behavior change.

questdb-rs/Cargo.toml (1)

38-38: Good: ureq pinned to <3.2.0 due to unversioned module.

This avoids non‑semver breaks in ureq::unversioned. Keep as is.

Based on learnings

questdb-rs-ffi/src/ndarr.rs (2)

115-127: Correct adaptation for Rust 2024: explicit unsafe block.

Wrapping unsafe ops inside an unsafe fn is required in Edition 2024. Looks good.


334-346: Same here: explicit unsafe block is appropriate.

No behavior change; complies with 2024 rules.

questdb-rs-ffi/src/lib.rs (1)

374-399: Adoption of #[unsafe(no_mangle)] and scoped unsafe blocks is correct.

This matches Edition 2024’s unsafe-in-unsafe-fn rules and keeps FFI ABIs stable. No API changes observed.

Ensure the C headers match unchanged symbol names and signatures.

Also applies to: 507-524, 595-619, 645-669, 771-780, 785-794, 798-803, 808-813, 817-822, 826-831, 837-844, 860-871, 877-887, 897-908, 917-928, 937-948, 957-968, 977-990, 1007-1033, 1053-1080, 1101-1128, 1137-1149, 1158-1170, 1186-1197, 1213-1224, 1249-1258, 1266-1275, 1621-1630, 1654-1667, 1679-1690, 1706-1710, 1713-1715, 1719-1727, 1735-1737, 1742-1748, 1777-1788, 1800-1811, 1830-1845, 1849-1851, 1855-1857, 1869-1873

questdb-rs/examples/http.rs (1)

1-5: LGTM! Mechanical import reordering for Rust 2024 edition.

The import reordering (moving ingress::{Sender, TimestampNanos} after Result) is a cosmetic change with no functional impact, consistent with the PR's stated goal of mechanical compiler adjustments.

questdb-rs/examples/from_env.rs (1)

1-4: LGTM! Consistent import reordering.

The import reorganization matches the pattern applied across other example files in this PR, with no functional changes.

questdb-rs/examples/from_conf.rs (1)

1-4: LGTM! Consistent mechanical changes.

The import reordering aligns with the systematic updates across all example files for the Rust 2024 edition upgrade.

questdb-rs/examples/basic.rs (1)

1-6: LGTM! Import reordering consistent with PR scope.

The mechanical import adjustment is part of the systematic Rust 2024 edition updates with no behavioral changes.

questdb-rs/src/ingress/tls.rs (2)

1-1: LGTM! Import order standardization.

Reordering the error module imports to place Result before fmt aligns with the consistent pattern applied across ingress modules in this PR.


147-179: LGTM! Formatting-only changes to error messages.

The reformatting of multi-line error return statements is purely cosmetic and preserves the original error messages and control flow.

questdb-rs/examples/auth_tls.rs (1)

1-5: LGTM! Consistent import reordering.

The import reorganization matches the systematic pattern across all example files in this PR.

questdb-rs/examples/auth.rs (1)

1-5: LGTM! Mechanical import adjustment.

The import reordering is consistent with the PR-wide pattern of mechanical adjustments for the Rust 2024 edition upgrade.

questdb-rs/src/tests/mock.rs (1)

31-31: LGTM! rustls import reordering.

Reordering the rustls imports to place non-nested items before nested module items (server::ServerConnection) is a cosmetic change with no functional impact, consistent with the mechanical adjustments for Rust 2024 edition.

questdb-rs/examples/protocol_version.rs (1)

2-5: LGTM! Import reordering aligns with project conventions.

The import statement reordering is purely cosmetic and maintains the same functionality.

questdb-rs/src/ingress/tests.rs (2)

363-365: LGTM! Trailing comma improves consistency.

The trailing comma follows Rust formatting conventions and doesn't affect the error message content.


456-460: LGTM! Multi-line assertion improves readability.

The assertion logic remains identical while the multi-line format makes the code easier to read.

questdb-rs/src/tests/http.rs (2)

26-28: LGTM! Import consolidation improves organization.

Grouping related test utilities together makes the imports more maintainable.


234-238: LGTM! Explicit assertion improves clarity.

The multi-line format makes the error message check more readable while maintaining identical behavior.

questdb-rs/src/ingress/ndarr.rs (2)

495-495: LGTM! Import ordering follows project conventions.

The import statement reordering is consistent with formatting adjustments across the codebase.


180-184: LGTM! Multi-line error messages improve readability.

The error messages are reformatted across multiple lines without changing their content, making them more maintainable and easier to read.

Also applies to: 213-217, 246-251, 286-290, 318-323, 352-357, 407-412, 443-448, 477-482, 523-528

questdb-rs/src/ingress/buffer.rs (1)

24-30: LGTM! Import reorganization maintains consistency.

The import statements are reordered to align with project-wide formatting conventions without affecting functionality.

questdb-rs/src/ingress/sender/tcp.rs (3)

27-28: LGTM! Import consolidation improves clarity.

The TLS and ingress imports are grouped logically, making the dependencies clearer.


146-146: LGTM! Allow attribute handles feature flag scenario correctly.

The #[allow(irrefutable_let_patterns)] attribute is necessary when the HTTP feature is disabled, as SyncProtocolHandler would only have the SyncTcp variant, making the pattern always match.


182-183: LGTM! API update aligns with socket2 dependency upgrade.

The method name change from set_nodelay to set_tcp_nodelay reflects the API evolution in the upgraded socket2 dependency. The functionality and error handling remain consistent.

questdb-rs/src/tests/sender.rs (2)

26-30: LGTM! Import reorganization improves consistency.

The import statements are consolidated and reordered to follow project conventions without affecting functionality.

Also applies to: 41-41, 46-46, 54-54


402-407: LGTM! Test formatting improves readability.

The test code formatting changes make function calls and parameters more readable without modifying test behavior.

Also applies to: 417-418, 424-435, 445-446, 456-457, 465-468, 477-479

questdb-rs/src/tests/ndarr.rs (2)

26-27: LGTM! Import consolidation follows conventions.

The import statements are reorganized to align with project-wide formatting standards.

Also applies to: 32-34


600-604: LGTM! Multi-line vec literal improves readability.

The vector literal is reformatted across multiple lines without changing its content, making the test expectation clearer.

questdb-rs/src/ingress/sender/http.rs (4)

26-26: LGTM! Import order adjustments.

The import reordering follows alphabetical conventions and has no functional impact.

Also applies to: 42-44


323-323: LGTM! Pattern matching adjustment for Rust 2024.

Removing ref is idiomatic in Rust 2024—the compiler correctly infers that msg is borrowed from the Value::String.


460-460: LGTM! Pattern matching adjustment for Rust 2024.

Consistent with the change at line 323. The compiler correctly infers the reference, and the subsequent iteration works as expected.


486-488: LGTM! Error message formatting adjustment.

The multi-line formatting improves readability without changing the error message content.

questdb-rs/src/ingress/mod.rs (4)

29-29: LGTM! Import order adjustments.

The reordering follows alphabetical conventions and has no functional impact on the cryptographic or error handling functionality.

Also applies to: 44-44, 50-50


165-173: LGTM! Conditional block expansion for Rust 2024.

The expanded if let with explicit binding is idiomatic for the 2024 edition and preserves the original logic while improving clarity.


476-513: LGTM! Feature-gated block expansions.

The explicit formatting of feature-gated error returns improves readability while preserving the original error messages and conditions.


938-1020: LGTM! Authentication match arm formatting adjustments.

The extensive formatting changes in build_auth expand match arms to multi-line format, improving readability of this complex authentication logic. All conditions, parameters, and error messages are preserved—these are purely mechanical adjustments for the Rust 2024 edition.

Copy link

@coderabbitai coderabbitai bot left a 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

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2f32dc0 and 85d49cf.

📒 Files selected for processing (1)
  • system_test/test.py (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
  • GitHub Check: questdb.c-questdb-client (Building and testing on windows-msvc-2019)
  • GitHub Check: questdb.c-questdb-client (Building and testing on windows-msvc-2022)
  • GitHub Check: questdb.c-questdb-client (Building and testing on mac)
  • GitHub Check: questdb.c-questdb-client (Building and testing on linux-nightly)
  • GitHub Check: questdb.c-questdb-client (Building and testing on linux-beta)
  • GitHub Check: questdb.c-questdb-client (Building and testing on linux-stable)
  • GitHub Check: questdb.c-questdb-client (Building and testing on linux)
  • GitHub Check: questdb.c-questdb-client (Building and testing Vs QuestDB 'master')
  • GitHub Check: questdb.c-questdb-client (Building and testing cargo fmt and clippy)
@amunra amunra changed the title chore: update dependency and langauge version chore: update dependency and language version Oct 16, 2025
@RaphDal RaphDal self-requested a review October 16, 2025 14:56
@amunra amunra merged commit 791b58d into main Oct 16, 2025
12 checks passed
@amunra amunra deleted the housekeeping branch October 16, 2025 15:49
@coderabbitai coderabbitai bot mentioned this pull request Oct 17, 2025
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants