Skip to content

Commit 2821d50

Browse files
lwshangclaude
andcommitted
refactor: remove redundant local LogVisibility enum, use LogVisibilityDef directly
The local LogVisibility enum was a 1:1 mirror of ic_management_canister_types::LogVisibility. Replace it with LogVisibilityDef as the Settings field type and convert directly to the IC management type, removing ~50 lines of boilerplate. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 884893b commit 2821d50

File tree

2 files changed

+95
-133
lines changed

2 files changed

+95
-133
lines changed

crates/icp-cli/src/operations/settings.rs

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::collections::{HashMap, HashSet};
33
use candid::Principal;
44
use futures::{StreamExt, stream::FuturesOrdered};
55
use ic_agent::{Agent, AgentError};
6-
use ic_management_canister_types::{EnvironmentVariable, LogVisibility as IcLogVisibility};
6+
use ic_management_canister_types::{EnvironmentVariable, LogVisibility};
77
use ic_utils::interfaces::ManagementCanister;
88
use icp::{Canister, canister::Settings};
99
use itertools::Itertools;
@@ -45,11 +45,11 @@ struct SettingsFailure {
4545

4646
/// Compare two LogVisibility values in an order-insensitive manner.
4747
/// For AllowedViewers, the principal lists are compared as sets.
48-
fn log_visibility_eq(a: &IcLogVisibility, b: &IcLogVisibility) -> bool {
48+
fn log_visibility_eq(a: &LogVisibility, b: &LogVisibility) -> bool {
4949
match (a, b) {
50-
(IcLogVisibility::Controllers, IcLogVisibility::Controllers) => true,
51-
(IcLogVisibility::Public, IcLogVisibility::Public) => true,
52-
(IcLogVisibility::AllowedViewers(va), IcLogVisibility::AllowedViewers(vb)) => {
50+
(LogVisibility::Controllers, LogVisibility::Controllers) => true,
51+
(LogVisibility::Public, LogVisibility::Public) => true,
52+
(LogVisibility::AllowedViewers(va), LogVisibility::AllowedViewers(vb)) => {
5353
let set_a: HashSet<_> = va.iter().collect();
5454
let set_b: HashSet<_> = vb.iter().collect();
5555
set_a == set_b
@@ -89,8 +89,8 @@ pub(crate) async fn sync_settings(
8989
let current_settings = status.settings;
9090

9191
// Convert our log_visibility to IC type for comparison and update
92-
let log_visibility_setting: Option<IcLogVisibility> =
93-
log_visibility.clone().map(IcLogVisibility::from);
92+
let log_visibility_setting: Option<LogVisibility> =
93+
log_visibility.clone().map(LogVisibility::from);
9494

9595
let environment_variable_setting =
9696
if let Some(configured_environment_variables) = &environment_variables {
@@ -262,28 +262,28 @@ mod tests {
262262
#[test]
263263
fn log_visibility_eq_controllers() {
264264
assert!(log_visibility_eq(
265-
&IcLogVisibility::Controllers,
266-
&IcLogVisibility::Controllers
265+
&LogVisibility::Controllers,
266+
&LogVisibility::Controllers
267267
));
268268
}
269269

270270
#[test]
271271
fn log_visibility_eq_public() {
272272
assert!(log_visibility_eq(
273-
&IcLogVisibility::Public,
274-
&IcLogVisibility::Public
273+
&LogVisibility::Public,
274+
&LogVisibility::Public
275275
));
276276
}
277277

278278
#[test]
279279
fn log_visibility_eq_different_variants() {
280280
assert!(!log_visibility_eq(
281-
&IcLogVisibility::Controllers,
282-
&IcLogVisibility::Public
281+
&LogVisibility::Controllers,
282+
&LogVisibility::Public
283283
));
284284
assert!(!log_visibility_eq(
285-
&IcLogVisibility::Public,
286-
&IcLogVisibility::Controllers
285+
&LogVisibility::Public,
286+
&LogVisibility::Controllers
287287
));
288288
}
289289

@@ -293,8 +293,8 @@ mod tests {
293293
let p2 = Principal::from_text("2vxsx-fae").unwrap();
294294

295295
assert!(log_visibility_eq(
296-
&IcLogVisibility::AllowedViewers(vec![p1, p2]),
297-
&IcLogVisibility::AllowedViewers(vec![p1, p2])
296+
&LogVisibility::AllowedViewers(vec![p1, p2]),
297+
&LogVisibility::AllowedViewers(vec![p1, p2])
298298
));
299299
}
300300

@@ -305,8 +305,8 @@ mod tests {
305305

306306
// Order should not matter
307307
assert!(log_visibility_eq(
308-
&IcLogVisibility::AllowedViewers(vec![p1, p2]),
309-
&IcLogVisibility::AllowedViewers(vec![p2, p1])
308+
&LogVisibility::AllowedViewers(vec![p1, p2]),
309+
&LogVisibility::AllowedViewers(vec![p2, p1])
310310
));
311311
}
312312

@@ -317,8 +317,8 @@ mod tests {
317317
let p3 = Principal::from_text("ryjl3-tyaaa-aaaaa-aaaba-cai").unwrap();
318318

319319
assert!(!log_visibility_eq(
320-
&IcLogVisibility::AllowedViewers(vec![p1, p2]),
321-
&IcLogVisibility::AllowedViewers(vec![p1, p3])
320+
&LogVisibility::AllowedViewers(vec![p1, p2]),
321+
&LogVisibility::AllowedViewers(vec![p1, p3])
322322
));
323323
}
324324

@@ -328,8 +328,8 @@ mod tests {
328328
let p2 = Principal::from_text("2vxsx-fae").unwrap();
329329

330330
assert!(!log_visibility_eq(
331-
&IcLogVisibility::AllowedViewers(vec![p1]),
332-
&IcLogVisibility::AllowedViewers(vec![p1, p2])
331+
&LogVisibility::AllowedViewers(vec![p1]),
332+
&LogVisibility::AllowedViewers(vec![p1, p2])
333333
));
334334
}
335335

@@ -338,12 +338,12 @@ mod tests {
338338
let p1 = Principal::from_text("aaaaa-aa").unwrap();
339339

340340
assert!(!log_visibility_eq(
341-
&IcLogVisibility::AllowedViewers(vec![p1]),
342-
&IcLogVisibility::Controllers
341+
&LogVisibility::AllowedViewers(vec![p1]),
342+
&LogVisibility::Controllers
343343
));
344344
assert!(!log_visibility_eq(
345-
&IcLogVisibility::AllowedViewers(vec![p1]),
346-
&IcLogVisibility::Public
345+
&LogVisibility::AllowedViewers(vec![p1]),
346+
&LogVisibility::Public
347347
));
348348
}
349349

0 commit comments

Comments
 (0)