diff options
Diffstat (limited to 'rsvg-rs/src/handle.rs')
-rw-r--r-- | rsvg-rs/src/handle.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/rsvg-rs/src/handle.rs b/rsvg-rs/src/handle.rs new file mode 100644 index 00000000..0e02e472 --- /dev/null +++ b/rsvg-rs/src/handle.rs @@ -0,0 +1,16 @@ +use ffi; +use std::ptr; + +use glib::Error; +use glib::translate::*; +use auto::Handle; + +impl Handle { + pub fn new_from_str(data: &str) -> Result<Handle, Error> { + unsafe { + let mut error = ptr::null_mut(); + let handle = ffi::rsvg_handle_new_from_data(data.as_ptr() as *mut _, data.len() as _, &mut error); + if error.is_null() { Ok(from_glib_full(handle)) } else { Err(from_glib_full(error)) } + } + } +}
\ No newline at end of file |