}
}
}
+
+ pub fn set_string_property(&self, namespace: &str, name: &str, value: &str) {
+ let cstr_ns = CString::new(namespace).unwrap();
+ let cstr_name = CString::new(name).unwrap();
+ let cstr_value = CString::new(value).unwrap();
+ unsafe {
+ dav_set_string_property_ns(self.ptr, cstr_ns.as_ptr(), cstr_name.as_ptr(), cstr_value.as_ptr());
+ }
+ }
+
+ pub fn set_string_prefixed_property(&self, prefixed_name: &str, value: &str) {
+ let cstr_name = CString::new(prefixed_name).unwrap();
+ let cstr_value = CString::new(value).unwrap();
+ unsafe {
+ dav_set_string_property(self.ptr, cstr_name.as_ptr(), cstr_value.as_ptr());
+ }
+ }
+
+ pub fn set_encrypted_string_property(&self, namespace: &str, name: &str, value: &str) {
+ let cstr_ns = CString::new(namespace).unwrap();
+ let cstr_name = CString::new(name).unwrap();
+ let cstr_value = CString::new(value).unwrap();
+ unsafe {
+ dav_set_encrypted_string_property_ns(self.ptr, cstr_ns.as_ptr(), cstr_name.as_ptr(), cstr_value.as_ptr());
+ }
+ }
+
+ pub fn get_string_property(&self, namespace: &str, name: &str) -> Option<String> {
+ let cstr_ns = CString::new(namespace).unwrap();
+ let cstr_name = CString::new(name).unwrap();
+ unsafe {
+ let value = dav_get_string_property_ns(self.ptr, cstr_ns.as_ptr(), cstr_name.as_ptr());
+ if value.is_null() {
+ None
+ } else {
+ Some(CStr::from_ptr(value).to_string_lossy() .into_owned())
+ }
+ }
+ }
+
+ pub fn get_string_prefixed_property(&self, prefixed_name: &str) -> Option<String> {
+ let cstr_name = CString::new(prefixed_name).unwrap();
+ unsafe {
+ let value = dav_get_string_property(self.ptr, cstr_name.as_ptr());
+ if value.is_null() {
+ None
+ } else {
+ Some(CStr::from_ptr(value).to_string_lossy() .into_owned())
+ }
+ }
+ }
+
+ pub fn remove_property(&self, namespace: &str, name: &str) {
+ let cstr_ns = CString::new(namespace).unwrap();
+ let cstr_name = CString::new(name).unwrap();
+ unsafe {
+ dav_remove_property_ns(self.ptr, cstr_ns.as_ptr(), cstr_name.as_ptr());
+ }
+ }
+
+ pub fn remove_prefixed_property(&self, prefixed_name: &str) {
+ let cstr_name = CString::new(prefixed_name).unwrap();
+ unsafe {
+ dav_remove_property(self.ptr, cstr_name.as_ptr());
+ }
+ }
+
+ pub fn remove_encrypted_property(&self, namespace: &str, name: &str) {
+ let cstr_ns = CString::new(namespace).unwrap();
+ let cstr_name = CString::new(name).unwrap();
+ unsafe {
+ dav_remove_encrypted_property_ns(self.ptr, cstr_ns.as_ptr(), cstr_name.as_ptr());
+ }
+ }
}
fn dav_lock(res: *mut ffi::DavResource) -> c_int;
fn dav_lock_t(res: *mut ffi::DavResource, timeout: libc::time_t) -> c_int;
fn dav_unlock(res: *mut ffi::DavResource) -> c_int;
+
+ fn dav_get_string_property(res: *mut ffi::DavResource, property: *const c_char) -> *mut c_char;
+ fn dav_get_string_property_ns(res: *mut ffi::DavResource, namespace: *const c_char, property: *const c_char) -> *mut c_char;
+ fn dav_set_string_property(res: *mut ffi::DavResource, property: *const c_char, value: *const c_char);
+ fn dav_set_string_property_ns(res: *mut ffi::DavResource, namespace: *const c_char, property: *const c_char, value: *const c_char);
+ fn dav_set_encrypted_string_property_ns(res: *mut ffi::DavResource, namespace: *const c_char, property: *const c_char, value: *const c_char);
+
+ fn dav_remove_property(res: *mut ffi::DavResource, property: *const c_char);
+ fn dav_remove_property_ns(res: *mut ffi::DavResource, namespace: *const c_char, property: *const c_char);
+ fn dav_remove_encrypted_property_ns(res: *mut ffi::DavResource, namespace: *const c_char, property: *const c_char);
}
\ No newline at end of file