refactor(core): split typed_api.rs and move its inline tests out

オープン
#460 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
リファクタリング
明瞭さ
おおむね明確
活発さ
活発
技術スタック
rust

調査の方向性

Start with aimdb-core/src/typed_api.rs and its inline tests, then inspect aimdb-core/src/typed_record.rs and aimdb-core/src/session/client.rs to understand the module conventions and feature gates. Split the typed API concerns into the suggested modules, preserve public paths, and reorganize the tests around shared mocks; assess whether typed_record's gated blocks can use internal helpers. Done when the files are easier to navigate and the refactor introduces no behavior change.

索引モデルが issue の本文から書いたものです。

説明

🏗️ core enhancement

Problem

A few aimdb-core modules have grown well past the size where they are easy to navigate or review.

  • aimdb-core/src/typed_api.rs — 3,748 lines. The non-test part (lines 1–1783) holds five separate concerns: Producer<T> (104), Consumer<T> (226), RecordRegistrar (468), OutboundLinkBuilder (917) and InboundLinkBuilder (1241). The remaining ~1,960 lines are one inline mod tests containing five hand-written mock trait impls whose methods are unimplemented!("not needed for … tests") (lines 1837, 1861, 2968, 3062, 3261).
  • aimdb-core/src/typed_record.rs — 1,726 lines, 54 cfg(feature …) gates, the highest gate density in the workspace, plus four #[allow(unused_mut)] (858, 1167, 1203, 1279) that exist only because of those gates.
  • aimdb-core/src/session/client.rs — 1,685 lines (tests from line 1013).

Suggested work

  1. Turn typed_api.rs into a typed_api/ module: producer.rs, consumer.rs, registrar.rs, link_outbound.rs, link_inbound.rs, re-exported from mod.rs so the public paths do not change.
  2. Move the inline tests into per-concern test modules and share one mock connector/runtime between them instead of five partial mocks.
  3. For typed_record.rs, look at whether the gated blocks can be grouped behind a small number of internal helper functions so the unused_mut allows disappear.

No behaviour change intended; purely a move/re-organise refactor.

Notes

Line numbers are from the tree at d9c7be0. Sizes were measured with wc -l; the split points are the first top-level #[cfg(test)] in each file.

主要言語
Rust
スター
101
フォーク
20
平均マージ
2時間 33分
マージ済み PR(30日)
90

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

aimdb-dev/aimdb のほかの issue

aimdb-dev/aimdb の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。