[librsvg] property_bag.rs: Wrap rsvg_property_bag_dup() and rsvg_property_bag_free() in Rust



commit 101186586f1915b2e020ad1cea31573448c64dbb
Author: Federico Mena Quintero <federico gnome org>
Date:   Wed Mar 22 16:28:14 2017 -0600

    property_bag.rs: Wrap rsvg_property_bag_dup() and rsvg_property_bag_free() in Rust

 rust/src/property_bag.rs |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)
---
diff --git a/rust/src/property_bag.rs b/rust/src/property_bag.rs
index 34761b0..239eaa5 100644
--- a/rust/src/property_bag.rs
+++ b/rust/src/property_bag.rs
@@ -14,6 +14,8 @@ pub enum RsvgPropertyBag {}
 extern "C" {
     fn rsvg_property_bag_size (pbag: *const RsvgPropertyBag) -> libc::c_uint;
     fn rsvg_property_bag_lookup (pbag: *const RsvgPropertyBag, key: *const libc::c_char) -> *const 
libc::c_char;
+    fn rsvg_property_bag_dup (pbag: *const RsvgPropertyBag) -> *mut RsvgPropertyBag;
+    fn rsvg_property_bag_free (pbag: *mut RsvgPropertyBag);
 }
 
 pub fn get_size (pbag: *const RsvgPropertyBag) -> usize {
@@ -27,6 +29,18 @@ pub fn lookup (pbag: *const RsvgPropertyBag, key: &str) -> Option<String> {
     }
 }
 
+pub fn dup (pbag: *const RsvgPropertyBag) -> *mut RsvgPropertyBag {
+    unsafe {
+        rsvg_property_bag_dup (pbag)
+    }
+}
+
+pub fn free (pbag: *mut RsvgPropertyBag) {
+    unsafe {
+        rsvg_property_bag_free (pbag);
+    }
+}
+
 pub fn length_or_none (pbag: *const RsvgPropertyBag, key: &'static str, length_dir: LengthDir) -> Result 
<Option<RsvgLength>, NodeError> {
     let value = lookup (pbag, key);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]