1 unstable release
Uses old Rust 2015
0.1.0 | Feb 12, 2018 |
---|
#27 in #guid
305 downloads per month
Used in 5 crates
(3 directly)
10KB
188 lines
GUID
This crate provides a guid!
macro for expressing
GUID
structs with a convenient literal syntax. A GUID is a Windows
globally unique identifier,
usually expressed in the following format:
{6B29FC40-CA47-1067-B31D-00DD010662DA}
With this crate, a GUID can be generated with the syntax:
guid!{"6B29FC40-CA47-1067-B31D-00DD010662DA"}
Example
#[macro_use]
extern crate guid;
use guid::GUID;
const MY_GUID: GUID = guid!{"6B29FC40-CA47-1067-B31D-00DD010662DA"};
fn main() {
assert_eq!(MY_GUID.Data1, 0x6B29FC40);
assert_eq!(MY_GUID.Data2, 0xCA47);
assert_eq!(MY_GUID.Data3, 0x1067);
assert_eq!(MY_GUID.Data4, [ 0xB3, 0x1D, 0x00, 0xDD, 0x01, 0x06, 0x62, 0xDA ]);
}
The GUID
type is re-exported from the winapi crate,
and is only available in Windows. The guid!
macro is also only available in Windows.
This crate also provides a parser, which can be used to parse GUID strings at runtime.
The parser is only available to generate an array of bytes on non-Windows platforms.
In Windows, this crate defines a parser that produces a GUID
struct.
Compatibility
This crate supports all versions of Rust (stable and nightly) starting with Rust 1.15.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
lib.rs
:
This crate provides a chomp parser for
Windows GUIDs, using the most customary syntax used for example by the
tool guidgen.exe
that comes with Microsoft Visual Studio. For example,
the GUID 6B29FC40-CA47-1067-B31D-00DD010662DA
would be represented by
the string "6B29FC40-CA47-1067-B31D-00DD010662DA"
.
See the documentation for the chunks
function below for an example.
Dependencies
~1MB
~18K SLoC