Skip to content

Commit 55f5bea

Browse files
authored
Easier ids in constructors (#275)
When constructing a lot of these types with ids, especially in tests, it is nice if you can just pass in some "id-string" This doesn't allow for converting between different concrete id types, but since these types can already be constructed from ids, it just makes things a little more convenient.
1 parent 936b57c commit 55f5bea

File tree

3 files changed

+61
-58
lines changed

3 files changed

+61
-58
lines changed

rust/agent.rs

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -216,9 +216,9 @@ pub struct AuthenticateRequest {
216216

217217
impl AuthenticateRequest {
218218
#[must_use]
219-
pub fn new(method_id: AuthMethodId) -> Self {
219+
pub fn new(method_id: impl Into<AuthMethodId>) -> Self {
220220
Self {
221-
method_id,
221+
method_id: method_id.into(),
222222
meta: None,
223223
}
224224
}
@@ -283,9 +283,9 @@ pub struct AuthMethod {
283283
}
284284

285285
impl AuthMethod {
286-
pub fn new(id: AuthMethodId, name: impl Into<String>) -> Self {
286+
pub fn new(id: impl Into<AuthMethodId>, name: impl Into<String>) -> Self {
287287
Self {
288-
id,
288+
id: id.into(),
289289
name: name.into(),
290290
description: None,
291291
meta: None,
@@ -382,9 +382,9 @@ pub struct NewSessionResponse {
382382

383383
impl NewSessionResponse {
384384
#[must_use]
385-
pub fn new(session_id: SessionId) -> Self {
385+
pub fn new(session_id: impl Into<SessionId>) -> Self {
386386
Self {
387-
session_id,
387+
session_id: session_id.into(),
388388
modes: None,
389389
#[cfg(feature = "unstable_session_model")]
390390
models: None,
@@ -445,11 +445,11 @@ pub struct LoadSessionRequest {
445445
}
446446

447447
impl LoadSessionRequest {
448-
pub fn new(session_id: SessionId, cwd: impl Into<PathBuf>) -> Self {
448+
pub fn new(session_id: impl Into<SessionId>, cwd: impl Into<PathBuf>) -> Self {
449449
Self {
450450
mcp_servers: vec![],
451451
cwd: cwd.into(),
452-
session_id,
452+
session_id: session_id.into(),
453453
meta: None,
454454
}
455455
}
@@ -657,9 +657,9 @@ pub struct SessionInfo {
657657

658658
#[cfg(feature = "unstable_session_list")]
659659
impl SessionInfo {
660-
pub fn new(session_id: SessionId, cwd: impl Into<PathBuf>) -> Self {
660+
pub fn new(session_id: impl Into<SessionId>, cwd: impl Into<PathBuf>) -> Self {
661661
Self {
662-
session_id,
662+
session_id: session_id.into(),
663663
cwd: cwd.into(),
664664
title: None,
665665
updated_at: None,
@@ -707,9 +707,12 @@ pub struct SessionModeState {
707707

708708
impl SessionModeState {
709709
#[must_use]
710-
pub fn new(current_mode_id: SessionModeId, available_modes: Vec<SessionMode>) -> Self {
710+
pub fn new(
711+
current_mode_id: impl Into<SessionModeId>,
712+
available_modes: Vec<SessionMode>,
713+
) -> Self {
711714
Self {
712-
current_mode_id,
715+
current_mode_id: current_mode_id.into(),
713716
available_modes,
714717
meta: None,
715718
}
@@ -740,9 +743,9 @@ pub struct SessionMode {
740743
}
741744

742745
impl SessionMode {
743-
pub fn new(id: SessionModeId, name: impl Into<String>) -> Self {
746+
pub fn new(id: impl Into<SessionModeId>, name: impl Into<String>) -> Self {
744747
Self {
745-
id,
748+
id: id.into(),
746749
name: name.into(),
747750
description: None,
748751
meta: None,
@@ -793,10 +796,10 @@ pub struct SetSessionModeRequest {
793796

794797
impl SetSessionModeRequest {
795798
#[must_use]
796-
pub fn new(session_id: SessionId, mode_id: SessionModeId) -> Self {
799+
pub fn new(session_id: impl Into<SessionId>, mode_id: impl Into<SessionModeId>) -> Self {
797800
Self {
798-
session_id,
799-
mode_id,
801+
session_id: session_id.into(),
802+
mode_id: mode_id.into(),
800803
meta: None,
801804
}
802805
}
@@ -1089,9 +1092,9 @@ pub struct PromptRequest {
10891092

10901093
impl PromptRequest {
10911094
#[must_use]
1092-
pub fn new(session_id: SessionId, prompt: Vec<ContentBlock>) -> Self {
1095+
pub fn new(session_id: impl Into<SessionId>, prompt: Vec<ContentBlock>) -> Self {
10931096
Self {
1094-
session_id,
1097+
session_id: session_id.into(),
10951098
prompt,
10961099
meta: None,
10971100
}
@@ -1188,9 +1191,9 @@ pub struct SessionModelState {
11881191
#[cfg(feature = "unstable_session_model")]
11891192
impl SessionModelState {
11901193
#[must_use]
1191-
pub fn new(current_model_id: ModelId, available_models: Vec<ModelInfo>) -> Self {
1194+
pub fn new(current_model_id: impl Into<ModelId>, available_models: Vec<ModelInfo>) -> Self {
11921195
Self {
1193-
current_model_id,
1196+
current_model_id: current_model_id.into(),
11941197
available_models,
11951198
meta: None,
11961199
}
@@ -1247,9 +1250,9 @@ pub struct ModelInfo {
12471250

12481251
#[cfg(feature = "unstable_session_model")]
12491252
impl ModelInfo {
1250-
pub fn new(model_id: ModelId, name: impl Into<String>) -> Self {
1253+
pub fn new(model_id: impl Into<ModelId>, name: impl Into<String>) -> Self {
12511254
Self {
1252-
model_id,
1255+
model_id: model_id.into(),
12531256
name: name.into(),
12541257
description: None,
12551258
meta: None,
@@ -1294,10 +1297,10 @@ pub struct SetSessionModelRequest {
12941297
#[cfg(feature = "unstable_session_model")]
12951298
impl SetSessionModelRequest {
12961299
#[must_use]
1297-
pub fn new(session_id: SessionId, model_id: ModelId) -> Self {
1300+
pub fn new(session_id: impl Into<SessionId>, model_id: impl Into<ModelId>) -> Self {
12981301
Self {
1299-
session_id,
1300-
model_id,
1302+
session_id: session_id.into(),
1303+
model_id: model_id.into(),
13011304
meta: None,
13021305
}
13031306
}
@@ -1873,9 +1876,9 @@ pub struct CancelNotification {
18731876

18741877
impl CancelNotification {
18751878
#[must_use]
1876-
pub fn new(session_id: SessionId) -> Self {
1879+
pub fn new(session_id: impl Into<SessionId>) -> Self {
18771880
Self {
1878-
session_id,
1881+
session_id: session_id.into(),
18791882
meta: None,
18801883
}
18811884
}

rust/client.rs

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ pub struct SessionNotification {
3838

3939
impl SessionNotification {
4040
#[must_use]
41-
pub fn new(session_id: SessionId, update: SessionUpdate) -> Self {
41+
pub fn new(session_id: impl Into<SessionId>, update: SessionUpdate) -> Self {
4242
Self {
43-
session_id,
43+
session_id: session_id.into(),
4444
update,
4545
meta: None,
4646
}
@@ -101,9 +101,9 @@ pub struct CurrentModeUpdate {
101101

102102
impl CurrentModeUpdate {
103103
#[must_use]
104-
pub fn new(current_mode_id: SessionModeId) -> Self {
104+
pub fn new(current_mode_id: impl Into<SessionModeId>) -> Self {
105105
Self {
106-
current_mode_id,
106+
current_mode_id: current_mode_id.into(),
107107
meta: None,
108108
}
109109
}
@@ -430,9 +430,9 @@ pub struct SelectedPermissionOutcome {
430430

431431
impl SelectedPermissionOutcome {
432432
#[must_use]
433-
pub fn new(option_id: PermissionOptionId) -> Self {
433+
pub fn new(option_id: impl Into<PermissionOptionId>) -> Self {
434434
Self {
435-
option_id,
435+
option_id: option_id.into(),
436436
meta: None,
437437
}
438438
}
@@ -539,9 +539,9 @@ pub struct ReadTextFileRequest {
539539
}
540540

541541
impl ReadTextFileRequest {
542-
pub fn new(session_id: SessionId, path: impl Into<PathBuf>) -> Self {
542+
pub fn new(session_id: impl Into<SessionId>, path: impl Into<PathBuf>) -> Self {
543543
Self {
544-
session_id,
544+
session_id: session_id.into(),
545545
path: path.into(),
546546
line: None,
547547
limit: None,
@@ -648,9 +648,9 @@ pub struct CreateTerminalRequest {
648648
}
649649

650650
impl CreateTerminalRequest {
651-
pub fn new(session_id: SessionId, command: impl Into<String>) -> Self {
651+
pub fn new(session_id: impl Into<SessionId>, command: impl Into<String>) -> Self {
652652
Self {
653-
session_id,
653+
session_id: session_id.into(),
654654
command: command.into(),
655655
args: Vec::new(),
656656
env: Vec::new(),
@@ -718,9 +718,9 @@ pub struct CreateTerminalResponse {
718718

719719
impl CreateTerminalResponse {
720720
#[must_use]
721-
pub fn new(terminal_id: TerminalId) -> Self {
721+
pub fn new(terminal_id: impl Into<TerminalId>) -> Self {
722722
Self {
723-
terminal_id,
723+
terminal_id: terminal_id.into(),
724724
meta: None,
725725
}
726726
}
@@ -750,10 +750,10 @@ pub struct TerminalOutputRequest {
750750

751751
impl TerminalOutputRequest {
752752
#[must_use]
753-
pub fn new(session_id: SessionId, terminal_id: TerminalId) -> Self {
753+
pub fn new(session_id: impl Into<SessionId>, terminal_id: impl Into<TerminalId>) -> Self {
754754
Self {
755-
session_id,
756-
terminal_id,
755+
session_id: session_id.into(),
756+
terminal_id: terminal_id.into(),
757757
meta: None,
758758
}
759759
}
@@ -825,10 +825,10 @@ pub struct ReleaseTerminalRequest {
825825

826826
impl ReleaseTerminalRequest {
827827
#[must_use]
828-
pub fn new(session_id: SessionId, terminal_id: TerminalId) -> Self {
828+
pub fn new(session_id: impl Into<SessionId>, terminal_id: impl Into<TerminalId>) -> Self {
829829
Self {
830-
session_id,
831-
terminal_id,
830+
session_id: session_id.into(),
831+
terminal_id: terminal_id.into(),
832832
meta: None,
833833
}
834834
}
@@ -883,10 +883,10 @@ pub struct KillTerminalCommandRequest {
883883

884884
impl KillTerminalCommandRequest {
885885
#[must_use]
886-
pub fn new(session_id: SessionId, terminal_id: TerminalId) -> Self {
886+
pub fn new(session_id: impl Into<SessionId>, terminal_id: impl Into<TerminalId>) -> Self {
887887
Self {
888-
session_id,
889-
terminal_id,
888+
session_id: session_id.into(),
889+
terminal_id: terminal_id.into(),
890890
meta: None,
891891
}
892892
}
@@ -941,10 +941,10 @@ pub struct WaitForTerminalExitRequest {
941941

942942
impl WaitForTerminalExitRequest {
943943
#[must_use]
944-
pub fn new(session_id: SessionId, terminal_id: TerminalId) -> Self {
944+
pub fn new(session_id: impl Into<SessionId>, terminal_id: impl Into<TerminalId>) -> Self {
945945
Self {
946-
session_id,
947-
terminal_id,
946+
session_id: session_id.into(),
947+
terminal_id: terminal_id.into(),
948948
meta: None,
949949
}
950950
}

rust/tool_call.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ pub struct ToolCall {
5252
}
5353

5454
impl ToolCall {
55-
pub fn new(tool_call_id: ToolCallId, title: impl Into<String>) -> Self {
55+
pub fn new(tool_call_id: impl Into<ToolCallId>, title: impl Into<String>) -> Self {
5656
Self {
57-
tool_call_id,
57+
tool_call_id: tool_call_id.into(),
5858
title: title.into(),
5959
kind: ToolKind::default(),
6060
status: ToolCallStatus::default(),
@@ -166,9 +166,9 @@ pub struct ToolCallUpdate {
166166

167167
impl ToolCallUpdate {
168168
#[must_use]
169-
pub fn new(tool_call_id: ToolCallId, fields: ToolCallUpdateFields) -> Self {
169+
pub fn new(tool_call_id: impl Into<ToolCallId>, fields: ToolCallUpdateFields) -> Self {
170170
Self {
171-
tool_call_id,
171+
tool_call_id: tool_call_id.into(),
172172
fields,
173173
meta: None,
174174
}
@@ -499,9 +499,9 @@ pub struct Terminal {
499499

500500
impl Terminal {
501501
#[must_use]
502-
pub fn new(terminal_id: TerminalId) -> Self {
502+
pub fn new(terminal_id: impl Into<TerminalId>) -> Self {
503503
Self {
504-
terminal_id,
504+
terminal_id: terminal_id.into(),
505505
meta: None,
506506
}
507507
}

0 commit comments

Comments
 (0)