use super::ClaudeCommand;
use std::path::PathBuf;
impl ClaudeCommand {
#[inline]
#[must_use]
pub fn with_working_directory<P: Into<PathBuf>>( mut self, dir: P ) -> Self {
self.working_directory = Some( dir.into() );
self
}
#[inline]
#[must_use]
pub fn with_max_output_tokens( mut self, tokens: u32 ) -> Self {
self.max_output_tokens = Some( tokens );
self
}
#[inline]
#[must_use]
pub fn with_continue_conversation( mut self, continue_: bool ) -> Self {
self.continue_conversation = continue_;
self
}
#[inline]
#[must_use]
pub fn with_message<S: Into<String>>( mut self, message: S ) -> Self {
self.message = Some( message.into() );
self
}
#[inline]
#[must_use]
pub fn with_arg<S: Into<String>>( mut self, arg: S ) -> Self {
self.args.push( arg.into() );
self
}
#[inline]
#[must_use]
pub fn with_args<I, S>( mut self, args: I ) -> Self
where
I: IntoIterator<Item = S>,
S: Into<String>,
{
self.args.extend( args.into_iter().map( Into::into ) );
self
}
#[inline]
#[must_use]
pub fn with_bash_timeout_ms( mut self, timeout_ms: u32 ) -> Self {
self.bash_default_timeout_ms = Some( timeout_ms );
self
}
#[inline]
#[must_use]
pub fn with_bash_max_timeout_ms( mut self, timeout_ms: u32 ) -> Self {
self.bash_max_timeout_ms = Some( timeout_ms );
self
}
#[inline]
#[must_use]
pub fn with_auto_continue( mut self, auto_continue: bool ) -> Self {
self.auto_continue = Some( auto_continue );
self
}
#[inline]
#[must_use]
pub fn with_telemetry( mut self, telemetry: bool ) -> Self {
self.telemetry = Some( telemetry );
self
}
}