Windows Console

This backend replies on the following Windows API for various console related tasks:

APITask(s)
GetStdHandle(...)To gain access to stdin and stdout
GetConsoleScreenBufferInfo(...)To get information about console size and position
GetConsoleMode(...)To get information about the current mode of the console
WriteConsoleOutputW(...)To write a buffer of characters directly into the console
ReadConsoleInputW(...)To read input events (keys, mouse, resizing, console closing)
SetConsoleTitleW(...)To set the title (caption) of the console
SetConsoleScreenBufferSize(...)To resize the console to a specific width and heighr
SetConsoleCursorInfo(...)To move the caret (cursor) into a specific position of the console

For clipboard based operations, it relies on the following APIs:

  • OpenClipboard
  • EmptyClipboard
  • CloseClipboard
  • SetClipboardData
  • GetClipboardData
  • IsClipboardFormatAvailable

Remarks: For this type of backend to work, there is no need for a 3rd party crate (everything is done via FFI and direct API calls).

Limitations

Windows uses WTF-16 (that does not encode the full range of unicode characters). While unicode surrogates are supported, depending on the version of windows some characters (usually with a code higher than 0xFFFF) might not be disply accurtely or my move the line they are down into to the left.