|  |  | @ -16,7 +16,12 @@ pub struct Bsonc { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | impl Bsonc { |  |  |  | impl Bsonc { | 
			
		
	
		
		
			
				
					
					|  |  |  |     pub fn new() -> Bsonc { |  |  |  |     pub fn new() -> Bsonc { | 
			
		
	
		
		
			
				
					
					|  |  |  |         Bsonc::from_ptr(unsafe { bindings::bson_new() }) |  |  |  |         let inner: *const bindings::bson_t = unsafe { bindings::bson_new() }; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         assert!(!inner.is_null()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         Bsonc { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             inner: inner as *mut bindings::bson_t, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             destroy_inner_on_drop: true, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     /// Create a bsonc from a raw pointer. Does not run cleanup
 |  |  |  |     /// Create a bsonc from a raw pointer. Does not run cleanup
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -111,6 +116,13 @@ impl Drop for Bsonc { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | #[cfg(test)] |  |  |  | #[cfg(test)] | 
			
		
	
		
		
			
				
					
					|  |  |  | mod tests { |  |  |  | mod tests { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     #[test] | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     fn test_bsonc_new() { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         for _ in 0..100 { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             let _ = super::Bsonc::new(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     #[test] |  |  |  |     #[test] | 
			
		
	
		
		
			
				
					
					|  |  |  |     fn test_bsonc_from_and_as_document() { |  |  |  |     fn test_bsonc_from_and_as_document() { | 
			
		
	
		
		
			
				
					
					|  |  |  |         let document = doc! { "key": "value" }; |  |  |  |         let document = doc! { "key": "value" }; | 
			
		
	
	
		
		
			
				
					|  |  | 
 |