docs.rs failed to build consolex-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
consolex
Windows console utilities: probe, create, and release the console of the current process, plus a small CLI built on the library API.
Windows-only.
Library
[]
= "0.1"
The recommended usage is [init] with a [Mode] resolved from the
command-line flags. [init] returns true when a new console window was
created, which is your cue to pause so the window stays readable:
use ;
// Build the mode from the arguments: `--show` → Show, `--hide` → Hide,
// otherwise Auto. Any other arguments are ignored.
let mode: Mode = args_os.skip.collect;
let created = init?;
println!;
// Keep a newly created window open long enough to read the output.
if created
# Ok::
Modes
Mode |
Behavior | init returns |
|---|---|---|
Auto |
Use the existing terminal, else create a window. | true if a window was created |
Show |
Always create a new window. | true |
Hide |
Detach the console; produce no output. | false |
Keep |
Leave the console state untouched. | false |
API
All names are short and explicit:
| Item | Meaning |
|---|---|
Mode |
Desired console policy (auto/show/hide/keep), with FromStr and FromIterator impls. |
init(mode) |
Apply a mode; returns whether a new window was created. |
wait_key |
Block until a key is pressed (no-op on pipes). |
has_console |
Is a console attached? |
set_mode(mode) |
Apply a mode (discards whether a window was created). |
attach |
Use the parent terminal, else create a window. |
show |
Always create a new console window. |
detach |
Release the console if one is attached. |
Errors are managed with thiserror:
consolex::Error with variants Alloc, Free, Parse, and Input.
Build your binary as a GUI-subsystem executable so no console flashes when a third-party program launches it:
CLI
The bundled consolex binary demonstrates the library. It is built as a
GUI-subsystem executable; console behavior is resolved at runtime:
| Launch context | Behavior |
|---|---|
| Double-click | A console opens showing the version info and waits for a key. |
| From a terminal | Version info goes to the existing console, then exits. |
| Third-party, default | A console is opened (no output is captured by the caller). |
--hide |
Detaches the console and exits without output. |
--show |
Always opens a new console window. |
Usage: consolex [OPTIONS]
Options:
--show Open a new console window
--hide Detach the console and exit without output
-h, --help Print help
-V, --version Print version
Notes
has_consoleusesGetConsoleCP, so consoles created withCREATE_NO_WINDOW(no visible window) are still detected correctly.wait_keytemporarily disables line buffering and echo, restoring the original console mode afterwards, and returns immediately when standard input is redirected.