21 |
22 | toggleGraphType("cpu")}
26 | />
27 |
30 |
31 |
32 | toggleGraphType("memory")}
36 | />
37 |
43 |
44 |
45 | toggleGraphType("gpu")}
49 | />
50 |
53 |
54 |
55 | );
56 | };
57 |
--------------------------------------------------------------------------------
/.github/copilot-instructions.md:
--------------------------------------------------------------------------------
1 | # Copilot Instructions for HardwareVisualizer
2 |
3 | ## Overview
4 |
5 | HardwareVisualizer は、リアルタイムでコンピュータのハードウェアパフォーマンスを監視するツールです。このプロジェクトは、フロントエンド(TypeScript/React)とバックエンド(Rust/Tauri)で構成されています。以下のガイドラインは、AI コーディングエージェントがこのコードベースで効率的に作業するための指針を提供します。
6 |
7 | ## プロジェクト構造
8 |
9 | - **`src/`**: フロントエンドの主要なコードが含まれています。
10 | - `components/`: 再利用可能な UI コンポーネント。
11 | - `features/`: 機能ごとのモジュール(例: hardware, menu, settings)。
12 | - `hooks/`: React カスタムフック。
13 | - `lib/`: ユーティリティ関数。
14 | - `store/`: 状態管理関連のコード。
15 | - `types/`: TypeScript 型定義。
16 | - **`src-tauri/`**: バックエンドの Rust コード。
17 | - `src/`: Rust の主要なコード。
18 | - `commands/`: フロントエンドと通信するための Tauri コマンド。
19 | - `database/`: データベース関連のロジック。
20 | - `services/`: サービス層のロジック。
21 | - `utils/`: ユーティリティ関数。
22 | - **`test/`**: 単体テスト。
23 | - **`coverage/`**: テストカバレッジレポート。
24 |
25 | ## 開発フロー
26 |
27 | ### 必要なツール
28 |
29 | - Node.js v22
30 | - Rust 1.85
31 |
32 | ### コマンド
33 |
34 | - **依存関係のインストール**:
35 | ```bash
36 | npm ci
37 | ```
38 | - **開発モードでの起動**:
39 | ```bash
40 | npm run tauri dev
41 | ```
42 | - **本番ビルド**:
43 | ```bash
44 | npm run tauri build
45 | ```
46 | - **コードのリント**:
47 | ```bash
48 | npm run lint
49 | cargo clippy --manifest-path src-tauri/Cargo.toml -- -D warnings
50 | ```
51 | - **コードのフォーマット**:
52 | ```bash
53 | npm run format
54 | cargo fmt --manifest-path src-tauri/Cargo.toml -- --check
55 | ```
56 | - **テストの実行**:
57 |
58 | ```bash
59 | npm test
60 | cargo test --manifest-path src-tauri/Cargo.toml -- --test-threads=1 --nocapture
61 | ```
62 |
63 | ## プロジェクト固有のパターン
64 |
65 | - **Tauri コマンド**: フロントエンドとバックエンド間の通信は、`src-tauri/src/commands/` 内のコマンドを使用して行われます。フロントエンドからは、自動生成された `rspc/bindings.ts` を通じて Tauri コマンドを呼び出します。
66 | - **ユーティリティ関数**: 再利用可能なロジックは `lib/` または `src-tauri/src/utils/` に配置されています。
67 |
68 | ## 参考ファイル
69 |
70 | - `README.md`: プロジェクトの全体像とセットアップ手順。
71 | - `vite.config.ts`: フロントエンドのビルド設定。
72 | - `tauri.conf.json`: Tauri アプリケーションの設定。
73 |
74 | このガイドラインに基づいて作業を進めてください。不明点があれば、README.md やコードベースを参照してください。
75 |
--------------------------------------------------------------------------------
/src-tauri/src/enums/hardware.rs:
--------------------------------------------------------------------------------
1 | use serde::{Deserialize, Deserializer, Serialize, Serializer};
2 | use specta::Type;
3 | use std::fmt;
4 |
5 | #[derive(Debug, PartialEq, Eq, Clone, Type)]
6 | #[serde(rename_all = "camelCase")]
7 | pub enum HardwareType {
8 | #[serde(rename = "cpu")]
9 | Cpu,
10 | Memory,
11 | #[serde(rename = "gpu")]
12 | Gpu,
13 | }
14 |
15 | impl Serialize for HardwareType {
16 | fn serialize