Windy

crates.io docs.rs

A Windows strings library that supports AString (ANSI string) and WString (Unicode string).

Features

Installation

Add the following lines to your Cargo.toml:

[dependencies] windy = "0.2.0"

Example

An example of parsing the outputs of cmd.exe.

```rust use windy::AString; use std::process::Command;

fn main() { let o = Command::new("cmd") .args(&["/c", "ThisCommandDoesNotExist"]) .output().unwrap(); let (stdout, stderr) = unsafe { ( AString::newunchecked(o.stdout), AString::newunchecked(o.stderr) ) }; println!("stdout: {:?}", stdout); println!("stderr: {:?}", stderr); } ```

no_std support

If you don't want to use std, use --no-default-features.

AString and WString are not available when no_std.

Macros support

windy-macros to convert a UTF-8 string to WString or AString at compile time.

[dependencies] windy = "0.2.0" windy-macros = "0.1.1"

Example

```rust use windy::WStr; use windy_macros::wstr;

[allow(nonsnakecase)]

[link(name = "user32")]

extern "system" { pub fn MessageBoxW( hWnd: *mut c_void, lpText: *const u16, lpCaption: *const u16, uType: u32, ) -> i32; }

fn main() { let text: &WStr = wstr!("World"); let caption: &WStr = wstr!("CaptionW"); unsafe { MessageBoxW(0 as , text.asptr(), caption.as_ptr(), 0); } } ```

License

This software is released under the MIT or Apache-2.0 License, see LICENSE-MIT or LICENSE-APACHE.