# Making fields private Fields can be made private for various reasons. You may wish to enforce some invariant on the fields of a structure, which cannot be achieved if the field is public and can be set by any code. For example, you may wish to ensure that a pointer always points to something appropriate. ### Annotation ```c struct OneFieldPrivate { /** Null-terminated, static string.
*/ const char *s; bool b; }; /**
*/ struct MostFieldsPrivate { int a; bool b; /**
*/ char c; }; ``` Then in Rust: ```rust # #[repr(C)] # pub struct OneFieldPrivate { # s: *const ::std::os::raw::c_char, # pub b: bool, # } impl OneFieldPrivate { pub fn new(s: &'static std::ffi::CStr, b: bool) -> Self { OneFieldPrivate { s: s.as_ptr(), b } } } ```