mdtablefix 0.6.1

`mdtablefix` unb0rks and reflows Markdown tables so that each column has a uniform width. When the `--wrap` option is used, it also wraps paragraphs and list items to 80 columns.
Documentation
// Shared Cargo and Verus expansion forms for the production scanner.
//
// Each macro matches the verifier's external-body marker as a literal, in its
// own arm, rather than through a `verifier::$external:ident` metavariable. A
// caller that names any other marker matches no arm, so the only trusted
// boundary a kernel can declare is the one the verification ledger records.

/// Emits the ordinary Rust form of a kernel function for Cargo builds.
#[cfg(not(verus_keep_ghost))]
macro_rules! verified_kernel_function {
    (
        $(#[doc = $doc:expr])*
        $(#[must_use])?
        #[cfg_attr(verus_keep_ghost, verifier::external_body)]
        $visibility:vis fn $name:ident($($arguments:tt)*) -> $result:ty;
        $(requires($($precondition:tt)*);)?
        ensures($result_name:ident => $($postcondition:tt)*);
        $body:block
    ) => {
        $(#[doc = $doc])*
        #[must_use]
        #[cfg_attr(verus_keep_ghost, verifier::external_body)]
        $visibility fn $name($($arguments)*) -> $result $body
    };
    (
        $(#[doc = $doc:expr])*
        $(#[must_use])?
        $visibility:vis fn $name:ident($($arguments:tt)*) -> $result:ty;
        $(requires($($precondition:tt)*);)?
        ensures($result_name:ident => $($postcondition:tt)*);
        $body:block
    ) => {
        $(#[doc = $doc])*
        #[must_use]
        $visibility fn $name($($arguments)*) -> $result $body
    };
}

/// Emits a scanner loop from one body while omitting proof annotations in Cargo.
#[cfg(not(verus_keep_ghost))]
macro_rules! verified_loop_function {
    (
        $(#[doc = $doc:expr])*
        $(#[must_use])?
        #[cfg_attr(verus_keep_ghost, verifier::external_body)]
        $visibility:vis fn $name:ident($($arguments:tt)*) -> $result:ty;
        $(requires($($precondition:tt)*);)?
        ensures($result_name:ident => $($postcondition:tt)*);
        before { $($before:tt)* }
        while ($condition:expr) invariant($($invariant:tt)*) $loop_body:block
        $(proof_after { $($proof_after:tt)* })?
        after { $($after:tt)* }
    ) => {
        $(#[doc = $doc])*
        #[must_use]
        #[cfg_attr(verus_keep_ghost, verifier::external_body)]
        $visibility fn $name($($arguments)*) -> $result {
            $($before)*
            while $condition $loop_body
            $($after)*
        }
    };
    (
        $(#[doc = $doc:expr])*
        $(#[must_use])?
        $visibility:vis fn $name:ident($($arguments:tt)*) -> $result:ty;
        $(requires($($precondition:tt)*);)?
        ensures($result_name:ident => $($postcondition:tt)*);
        before { $($before:tt)* }
        while ($condition:expr) invariant($($invariant:tt)*) $loop_body:block
        $(proof_after { $($proof_after:tt)* })?
        after { $($after:tt)* }
    ) => {
        $(#[doc = $doc])*
        #[must_use]
        $visibility fn $name($($arguments)*) -> $result {
            $($before)*
            while $condition $loop_body
            $($after)*
        }
    };
}

/// Sends the same scanner loop and its invariant to Verus.
#[cfg(verus_keep_ghost)]
macro_rules! verified_loop_function {
    (
        $(#[doc = $doc:expr])*
        $(#[must_use])?
        #[cfg_attr(verus_keep_ghost, verifier::external_body)]
        $visibility:vis fn $name:ident($($arguments:tt)*) -> $result:ty;
        $(requires($($precondition:tt)*);)?
        ensures($result_name:ident => $($postcondition:tt)*);
        before { $($before:tt)* }
        while ($condition:expr) invariant($($invariant:tt)*) $loop_body:block
        $(proof_after { $($proof_after:tt)* })?
        after { $($after:tt)* }
    ) => {
        verus! {
            $(#[doc = $doc])*
            #[must_use]
            #[cfg_attr(verus_keep_ghost, verifier::external_body)]
            $visibility fn $name($($arguments)*) -> ($result_name: $result)
                $(requires $($precondition)*)?
                ensures $($postcondition)*
            {
                $($before)*
                while $condition
                    invariant $($invariant)*
                    $loop_body
                $(proof { $($proof_after)* })?
                $($after)*
            }
        }
    };
    (
        $(#[doc = $doc:expr])*
        $(#[must_use])?
        $visibility:vis fn $name:ident($($arguments:tt)*) -> $result:ty;
        $(requires($($precondition:tt)*);)?
        ensures($result_name:ident => $($postcondition:tt)*);
        before { $($before:tt)* }
        while ($condition:expr) invariant($($invariant:tt)*) $loop_body:block
        $(proof_after { $($proof_after:tt)* })?
        after { $($after:tt)* }
    ) => {
        verus! {
            $(#[doc = $doc])*
            #[must_use]
            $visibility fn $name($($arguments)*) -> ($result_name: $result)
                $(requires $($precondition)*)?
                ensures $($postcondition)*
            {
                $($before)*
                while $condition
                    invariant $($invariant)*
                    $loop_body
                $(proof { $($proof_after)* })?
                $($after)*
            }
        }
    };
}

/// Emits the contracted Verus form of the same kernel function body.
#[cfg(verus_keep_ghost)]
macro_rules! verified_kernel_function {
    (
        $(#[doc = $doc:expr])*
        $(#[must_use])?
        #[cfg_attr(verus_keep_ghost, verifier::external_body)]
        $visibility:vis fn $name:ident($($arguments:tt)*) -> $result:ty;
        $(requires($($precondition:tt)*);)?
        ensures($result_name:ident => $($postcondition:tt)*);
        $body:block
    ) => {
        verus! {
            $(#[doc = $doc])*
            #[must_use]
            #[cfg_attr(verus_keep_ghost, verifier::external_body)]
            $visibility fn $name($($arguments)*) -> ($result_name: $result)
                $(requires $($precondition)*)?
                ensures $($postcondition)*
                $body
        }
    };
    (
        $(#[doc = $doc:expr])*
        $(#[must_use])?
        $visibility:vis fn $name:ident($($arguments:tt)*) -> $result:ty;
        $(requires($($precondition:tt)*);)?
        ensures($result_name:ident => $($postcondition:tt)*);
        $body:block
    ) => {
        verus! {
            $(#[doc = $doc])*
            #[must_use]
            $visibility fn $name($($arguments)*) -> ($result_name: $result)
                $(requires $($precondition)*)?
                ensures $($postcondition)*
                $body
        }
    };
}