You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: mod.rs
    path of file: ./repos/grillon/src/assertion
    
    the code of the file until where you have to start completion: //! Functionnality for asserting.
//!
//! This module contains a set of structures, types and implementations to
//! create expressive assertions decoupled from the DSL. This is ideal for
//! external implementations.
//!
//! This is not generally used by end users, instead the [`dsl`] mo
    
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        match self {
            UnprocessableReason::InvalidJsonPath(message) => {
                write!(f, "Unprocessable json path: {message}")
            }
            UnprocessableReason::JsonBodyMissing => {
                write!(f, "Unprocessable json body: missing")
            }
            UnprocessableReason::InvalidJsonSchema(schema, instance) => {
                write!(f, "Invalid json schema: {schema} => {instance}")
            }
            UnprocessableReason::SerializationFailure(message) => {
                write!(f, "Serialization failure: {message}")
            }
            UnprocessableReason::Other(message) => write!(f, "{message}"),
        }
    }