Documentation for read prefs

pull/13/head
Thijs Cadier 9 years ago
parent bdf4b6fad8
commit b6da5c9e43

@ -1,5 +1,8 @@
//! Abstraction on top of the MongoDB connection read prefences.
use mongoc::bindings; use mongoc::bindings;
/// Describes how reads should be dispatched.
pub enum ReadMode { pub enum ReadMode {
Primary, Primary,
Secondary, Secondary,
@ -18,11 +21,16 @@ fn read_mode_value(read_mode: &ReadMode) -> bindings::mongoc_read_mode_t {
} }
} }
/// Provides an abstraction on top of the MongoDB connection read prefences.
///
/// It allows for hinting to the driver which nodes in a replica set should be accessed first.
/// Generally, it makes the most sense to stick with the global default, `Primary`. All of the other modes come with caveats that won't be covered in great detail here.
pub struct ReadPrefs { pub struct ReadPrefs {
inner: *mut bindings::mongoc_read_prefs_t inner: *mut bindings::mongoc_read_prefs_t
} }
impl ReadPrefs { impl ReadPrefs {
/// Create a new empty read prefs.
pub fn new(read_mode: &ReadMode) -> ReadPrefs { pub fn new(read_mode: &ReadMode) -> ReadPrefs {
let read_mode_value = read_mode_value(read_mode); let read_mode_value = read_mode_value(read_mode);
let inner = unsafe { bindings::mongoc_read_prefs_new(read_mode_value) }; let inner = unsafe { bindings::mongoc_read_prefs_new(read_mode_value) };
@ -30,15 +38,18 @@ impl ReadPrefs {
ReadPrefs { inner: inner } ReadPrefs { inner: inner }
} }
/// Get a new instance of the default read pref.
pub fn default() -> ReadPrefs{ pub fn default() -> ReadPrefs{
ReadPrefs::new(&ReadMode::Primary) ReadPrefs::new(&ReadMode::Primary)
} }
#[doc(hidden)]
pub fn inner(&self) -> *const bindings::mongoc_read_prefs_t { pub fn inner(&self) -> *const bindings::mongoc_read_prefs_t {
assert!(!self.inner.is_null()); assert!(!self.inner.is_null());
self.inner self.inner
} }
#[doc(hidden)]
pub fn mut_inner(&self) -> *mut bindings::mongoc_read_prefs_t { pub fn mut_inner(&self) -> *mut bindings::mongoc_read_prefs_t {
assert!(!self.inner.is_null()); assert!(!self.inner.is_null());
self.inner as *mut bindings::mongoc_read_prefs_t self.inner as *mut bindings::mongoc_read_prefs_t

Loading…
Cancel
Save