MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / handle_sandbox_setting_edit_key

Method handle_sandbox_setting_edit_key

crates/openshell-tui/src/app.rs:1539–1588  ·  view source on GitHub ↗
(&mut self, key: KeyEvent)

Source from the content-addressed store, hash-verified

1537 }
1538
1539 fn handle_sandbox_setting_edit_key(&mut self, key: KeyEvent) {
1540 let Some(ref mut edit) = self.sandbox_setting_edit else {
1541 return;
1542 };
1543 match key.code {
1544 KeyCode::Esc => {
1545 self.sandbox_setting_edit = None;
1546 }
1547 KeyCode::Enter => {
1548 let idx = edit.index;
1549 if let Some(entry) = self.sandbox_settings.get(idx) {
1550 let raw = edit.input.trim();
1551 match entry.kind {
1552 SettingValueKind::Int => {
1553 if raw.parse::<i64>().is_err() {
1554 edit.error = Some("expected integer".to_string());
1555 return;
1556 }
1557 }
1558 SettingValueKind::Bool => {
1559 if settings::parse_bool_like(raw).is_none() {
1560 edit.error = Some("expected true/false/yes/no/1/0".to_string());
1561 return;
1562 }
1563 }
1564 SettingValueKind::String => {
1565 if let Some(setting) = settings::setting_for_key(&entry.key)
1566 && let Err(allowed) = setting.validate_string_value(raw)
1567 {
1568 edit.error =
1569 Some(format!("expected one of: {}", allowed.join(", ")));
1570 return;
1571 }
1572 }
1573 }
1574 }
1575 edit.error = None;
1576 self.sandbox_confirm_setting_set = Some(edit.index);
1577 }
1578 KeyCode::Backspace => {
1579 edit.input.pop();
1580 edit.error = None;
1581 }
1582 KeyCode::Char(c) => {
1583 edit.input.push(c);
1584 edit.error = None;
1585 }
1586 _ => {}
1587 }
1588 }
1589
1590 fn handle_sandbox_setting_confirm_set_key(&mut self, key: KeyEvent) {
1591 match key.code {

Callers 1

handle_keyMethod · 0.80

Calls 5

parse_bool_likeFunction · 0.85
setting_for_keyFunction · 0.85
validate_string_valueMethod · 0.80
pushMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected