pub(crate) enum Commands {
Info {
preset: PathBuf,
},
Validate {
preset: PathBuf,
strict: bool,
output: Option<PathBuf>,
},
Render {
preset: PathBuf,
frames: u32,
output: PathBuf,
width: u32,
height: u32,
mesh_size: (u32, u32),
},
List {
directory: PathBuf,
},
CompileShaders {
directory: PathBuf,
output: Option<PathBuf>,
},
ListAudio,
Benchmark {
preset: PathBuf,
frames: u32,
width: u32,
height: u32,
mesh_size: (u32, u32),
},
DumpShader {
preset: PathBuf,
kind: DumpKind,
},
}Variants§
Info
Show information about a preset
Validate
Validate a preset file (or, with --strict, a directory of presets).
Fields
preset: PathBufPath to a .milk preset OR a directory containing .milk
files. A directory is only accepted in --strict mode.
Render
Render a preset to images
Fields
List
List all presets in a directory
CompileShaders
Try to compile every preset’s comp shader through the user-shader pipeline (HLSL translate → WGSL wrap → naga validate). Reports success/fail counts and writes a CSV next to the directory.
Fields
ListAudio
List capture sources the active cpal host can see, with
monitor / microphone / other classification. The autodetect
pick (the monitor of the host’s default output sink, when
present) is flagged with an arrow — that’s what
AudioInput::with_device(None) opens at boot.
If no monitor source shows up on a PipeWire system, load
module-loopback (pactl load-module module-loopback latency_msec=1) so the sink monitor is exposed to ALSA /
cpal — some distros ship a minimal PipeWire config that
doesn’t enable it by default.
Benchmark
Render N frames through the full engine and report per-frame timing statistics (mean, std-dev, min, max, p50, p99). Output is on stdout — no PNGs are written, the engine runs purely for timing.
Fields
DumpShader
Emit the translated WGSL for a preset’s warp and/or comp shader on stdout. Useful for debugging HLSL→WGSL translator output without standing up the renderer.
Trait Implementations§
Source§impl FromArgMatches for Commands
impl FromArgMatches for Commands
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut<'b>(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§impl Subcommand for Commands
impl Subcommand for Commands
Source§fn augment_subcommands<'b>(__clap_app: Command) -> Command
fn augment_subcommands<'b>(__clap_app: Command) -> Command
Source§fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
Command] so it can instantiate self via
[FromArgMatches::update_from_arg_matches_mut] Read moreSource§fn has_subcommand(__clap_name: &str) -> bool
fn has_subcommand(__clap_name: &str) -> bool
Self can parse a specific subcommandAuto Trait Implementations§
impl Freeze for Commands
impl RefUnwindSafe for Commands
impl Send for Commands
impl Sync for Commands
impl Unpin for Commands
impl UnwindSafe for Commands
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
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
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>
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>
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 more