summaryrefslogtreecommitdiffstats
path: root/src/config/mod.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-03-03 09:57:50 +0800
committerGitHub <noreply@github.com>2024-03-03 09:57:50 +0800
commit8421f23b450643ca3c66cb3f6fd21ef862a2369d (patch)
treed64addd1104a01f3d60193f9912b4d0a3508edf3 /src/config/mod.rs
parentb2f86f2899b79b291eb56435f99402509105b7ec (diff)
downloadaichat-8421f23b450643ca3c66cb3f6fd21ef862a2369d.tar.gz
feat: allow overriding execute/code role (#331)
Diffstat (limited to 'src/config/mod.rs')
-rw-r--r--src/config/mod.rs14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/config/mod.rs b/src/config/mod.rs
index cbf1020..5220c5d 100644
--- a/src/config/mod.rs
+++ b/src/config/mod.rs
@@ -285,17 +285,23 @@ impl Config {
}
pub fn set_execute_role(&mut self) -> Result<()> {
- let role = Role::for_execute();
+ let role = self
+ .retrieve_role(Role::EXECUTE)
+ .unwrap_or_else(|_| Role::for_execute());
self.set_role_obj(role)
}
- pub fn set_describe_role(&mut self) -> Result<()> {
- let role = Role::for_describe();
+ pub fn set_describe_command_role(&mut self) -> Result<()> {
+ let role = self
+ .retrieve_role(Role::DESCRIBE_COMMAND)
+ .unwrap_or_else(|_| Role::for_describe_command());
self.set_role_obj(role)
}
pub fn set_code_role(&mut self) -> Result<()> {
- let role = Role::for_code();
+ let role = self
+ .retrieve_role(Role::CODE)
+ .unwrap_or_else(|_| Role::for_code());
self.set_role_obj(role)
}