Best effort: attempt protection, fall back gracefully on failure.
This is the recommended default for most applications. Memory will be
protected when possible, but the application will continue to function
even if mlock or guard pages are unavailable (e.g., due to resource
limits or platform restrictions).
Strict: require all protection features to succeed.
Operations will return an error if memory cannot be locked or guard
pages cannot be created. Use this in high-security contexts where
degraded protection is unacceptable.
Memory is still zeroized on drop, but mlock, guard pages, and
MADV_DONTDUMP are not used. This is useful for testing or when
running in restricted environments like WASM.