From 9cc2d28223c8ac6ca9ab38fe1dcdad5e6e105a5e Mon Sep 17 00:00:00 2001 From: lummax Date: Thu, 3 Sep 2015 11:14:35 +0200 Subject: [PATCH] util/dictionary: implement `set()` --- src/util/dictionary.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/util/dictionary.rs b/src/util/dictionary.rs index c8fb868..646a7be 100644 --- a/src/util/dictionary.rs +++ b/src/util/dictionary.rs @@ -40,6 +40,20 @@ impl<'a> Dictionary<'a> { Dictionary { ptr: ptr::null_mut(), _own: true, _marker: PhantomData } } + pub fn set(&mut self, key: &str, value: &str) { + unsafe { + let key = CString::new(key).unwrap(); + let value = CString::new(value).unwrap(); + let mut ptr = self.as_mut_ptr(); + + if av_dict_set(&mut ptr, key.as_ptr(), value.as_ptr(), 0) < 0 { + panic!("out of memory"); + } + + self.ptr = ptr; + } + } + pub fn iter(&self) -> DictionaryIter { unsafe { DictionaryIter::new(self.as_ptr())