Wrap //aos:uuid for Rust
Including conversions to the native Rust uuid crate's types.
Change-Id: Id8f87c60df4f5c9daa8ce4f72c65b376b0ec812a
Signed-off-by: Brian Silverman <bsilver16384@gmail.com>
diff --git a/aos/uuid.rs b/aos/uuid.rs
new file mode 100644
index 0000000..737d6f4
--- /dev/null
+++ b/aos/uuid.rs
@@ -0,0 +1,30 @@
+autocxx::include_cpp! (
+#include "aos/uuid.h"
+#include "aos/uuid_for_rust.h"
+
+safety!(unsafe)
+
+generate_pod!("aos::UUID")
+);
+
+pub use ffi::aos::UUID;
+
+impl From<UUID> for uuid::Uuid {
+ fn from(uuid: UUID) -> uuid::Uuid {
+ uuid::Uuid::from_bytes(uuid.data)
+ }
+}
+
+impl AsRef<uuid::Uuid> for UUID {
+ fn as_ref(&self) -> &uuid::Uuid {
+ uuid::Uuid::from_bytes_ref(&self.data)
+ }
+}
+
+impl From<uuid::Uuid> for UUID {
+ fn from(uuid: uuid::Uuid) -> UUID {
+ UUID {
+ data: *uuid.as_bytes(),
+ }
+ }
+}