pub struct XcRunSimctlInstance<'src> { /* private fields */ }Implementations§
Source§impl XcRunSimctlInstance<'_>
impl XcRunSimctlInstance<'_>
Sourcepub fn boot(&self, device_name: impl Into<DeviceName>) -> Result<BootOutput>
pub fn boot(&self, device_name: impl Into<DeviceName>) -> Result<BootOutput>
This will not fail if the device is already booted, but will return BootOutput::AlreadyBooted in that case.
Examples found in repository?
examples/simctl.rs (line 48)
3fn main() -> Result<(), apple_clis::error::Error> {
4 let xcrun_instance = xcrun::XcRunInstance::new()?;
5 let simctl_instance = xcrun_instance.simctl();
6
7 let output = simctl_instance.list()?;
8 let devices: Vec<&simctl::list::ListDevice> = output.success()?.devices().collect();
9 for device in devices {
10 println!(
11 "Simulator device {name} is {state:?} and is ready = {ready:?}",
12 name = device.name,
13 state = device.state,
14 ready = device.ready()
15 );
16 }
17
18 // the .names() and .ipads() are implemented on extension traits imported with
19 // use apple_clis::prelude::*;
20 // to make finding devices easier and more ergonomic
21 let ipad_simulator: &IPadVariant = output
22 .get_success()
23 .expect("to succeed")
24 .devices()
25 .names()
26 .ipads()
27 .max()
28 .expect("an iPad simulator to be available");
29 println!("Found an {} simulator", ipad_simulator);
30
31 if let IPadVariant::Pro {
32 size, generation, ..
33 } = ipad_simulator
34 {
35 let inches: f32 = size.inches();
36 let gen: u8 = match generation {
37 // generations can be M1 or gen 6
38 Generation::Num(num) => num.get(),
39 Generation::M(m_gen) => m_gen.get_u8(),
40 };
41 println!(
42 "Ooh, its a pro size {} {:?} generation {} {:?}",
43 size, inches, generation, gen,
44 );
45 }
46
47 // boot the simulator
48 let boot_result = simctl_instance.boot(DeviceName::from(*ipad_simulator))?;
49 match boot_result {
50 simctl::boot::BootOutput::SuccessUnImplemented { .. } => println!("Booted the simulator"),
51 simctl::boot::BootOutput::AlreadyBooted => println!("Simulator was already booted"),
52 _ => println!("PRs welcome to cover more cases"),
53 }
54
55 // open the simulator
56 let open_instance = open::OpenCLIInstance::new()?;
57 open_instance.open_well_known(&open::well_known::WellKnown::Simulator)?;
58
59 Ok(())
60}Source§impl XcRunSimctlInstance<'_>
impl XcRunSimctlInstance<'_>
pub fn install_booted( &self, app_path: impl AsRef<Utf8Path>, ) -> Result<InstallOutput>
pub fn install( &self, app_path: impl AsRef<Utf8Path>, booted_simulator: &DeviceName, ) -> Result<InstallOutput>
Source§impl<'src> XcRunSimctlInstance<'src>
impl<'src> XcRunSimctlInstance<'src>
Sourcepub fn list(&self) -> Result<ListOutput>
pub fn list(&self) -> Result<ListOutput>
Examples found in repository?
examples/xcrun-simctl-list.rs (line 7)
3fn main() -> Result<(), apple_clis::error::Error> {
4 let xcrun_instance = apple_clis::xcrun::XcRunInstance::new()?;
5 let simctl_instance = xcrun_instance.simctl();
6
7 let output = simctl_instance.list()?;
8 println!("Output: {:#?}", output);
9
10 let devices = output.success()?.devices();
11 for device in devices {
12 println!("Device: {:#?}", device);
13 }
14
15 Ok(())
16}More examples
examples/simctl.rs (line 7)
3fn main() -> Result<(), apple_clis::error::Error> {
4 let xcrun_instance = xcrun::XcRunInstance::new()?;
5 let simctl_instance = xcrun_instance.simctl();
6
7 let output = simctl_instance.list()?;
8 let devices: Vec<&simctl::list::ListDevice> = output.success()?.devices().collect();
9 for device in devices {
10 println!(
11 "Simulator device {name} is {state:?} and is ready = {ready:?}",
12 name = device.name,
13 state = device.state,
14 ready = device.ready()
15 );
16 }
17
18 // the .names() and .ipads() are implemented on extension traits imported with
19 // use apple_clis::prelude::*;
20 // to make finding devices easier and more ergonomic
21 let ipad_simulator: &IPadVariant = output
22 .get_success()
23 .expect("to succeed")
24 .devices()
25 .names()
26 .ipads()
27 .max()
28 .expect("an iPad simulator to be available");
29 println!("Found an {} simulator", ipad_simulator);
30
31 if let IPadVariant::Pro {
32 size, generation, ..
33 } = ipad_simulator
34 {
35 let inches: f32 = size.inches();
36 let gen: u8 = match generation {
37 // generations can be M1 or gen 6
38 Generation::Num(num) => num.get(),
39 Generation::M(m_gen) => m_gen.get_u8(),
40 };
41 println!(
42 "Ooh, its a pro size {} {:?} generation {} {:?}",
43 size, inches, generation, gen,
44 );
45 }
46
47 // boot the simulator
48 let boot_result = simctl_instance.boot(DeviceName::from(*ipad_simulator))?;
49 match boot_result {
50 simctl::boot::BootOutput::SuccessUnImplemented { .. } => println!("Booted the simulator"),
51 simctl::boot::BootOutput::AlreadyBooted => println!("Simulator was already booted"),
52 _ => println!("PRs welcome to cover more cases"),
53 }
54
55 // open the simulator
56 let open_instance = open::OpenCLIInstance::new()?;
57 open_instance.open_well_known(&open::well_known::WellKnown::Simulator)?;
58
59 Ok(())
60}Source§impl XcRunSimctlInstance<'_>
impl XcRunSimctlInstance<'_>
pub fn launch( &self, config: &LaunchConfig, simulator_name: DeviceName, ) -> Result<LaunchOutput>
Sourcepub fn launch_piped(
&self,
config: &LaunchConfig,
simulator_name: DeviceName,
) -> Result<ExitStatus>
pub fn launch_piped( &self, config: &LaunchConfig, simulator_name: DeviceName, ) -> Result<ExitStatus>
Like Self::launch, but pipes the console of the launched process to the current process’s console.
The upshot of this is you can see your programs logs in the console!
Not setting LaunchConfig::console to true will result in a warning, since presumably you are calling this function over Self::launch to see logs in the console.
Trait Implementations§
Auto Trait Implementations§
impl<'src> Freeze for XcRunSimctlInstance<'src>
impl<'src> RefUnwindSafe for XcRunSimctlInstance<'src>
impl<'src> Send for XcRunSimctlInstance<'src>
impl<'src> Sync for XcRunSimctlInstance<'src>
impl<'src> Unpin for XcRunSimctlInstance<'src>
impl<'src> UnwindSafe for XcRunSimctlInstance<'src>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Set the foreground color generically Read more
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Set the background color generically. Read more
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Change the foreground color to black
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Change the background color to black
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Change the foreground color to red
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Change the background color to red
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Change the foreground color to green
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Change the background color to green
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Change the foreground color to yellow
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Change the background color to yellow
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Change the foreground color to blue
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Change the background color to blue
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Change the foreground color to magenta
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Change the background color to magenta
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Change the foreground color to purple
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Change the background color to purple
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Change the foreground color to cyan
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Change the background color to cyan
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Change the foreground color to white
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Change the background color to white
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Change the foreground color to the terminal default
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Change the background color to the terminal default
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Change the foreground color to bright black
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Change the background color to bright black
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Change the foreground color to bright red
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Change the background color to bright red
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Change the foreground color to bright green
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Change the background color to bright green
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Change the foreground color to bright yellow
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Change the background color to bright yellow
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Change the foreground color to bright blue
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Change the background color to bright blue
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright magenta
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright magenta
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright purple
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright purple
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Change the foreground color to bright cyan
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Change the background color to bright cyan
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Change the foreground color to bright white
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Change the background color to bright white
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Make the text bold
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Make the text dim
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Make the text italicized
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Make the text underlined
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Make the text blink
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Make the text blink (but fast!)
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Swap the foreground and background colors
Hide the text
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Cross out the text
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
Set the foreground color at runtime. Only use if you do not know which color will be used at
compile-time. If the color is constant, use either
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
Set the background color at runtime. Only use if you do not know what color to use at
compile-time. If the color is constant, use either
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read moreSource§fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the foreground color to a specific RGB value.
Source§fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the background color to a specific RGB value.
Source§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
Sets the foreground color to an RGB value.
Source§fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
Sets the background color to an RGB value.