Private/New-TLRuleResult.ps1

function New-TLRuleResult {
    <#
    .SYNOPSIS
        Creates the result object a rule's Test scriptblock returns.
    #>

    [CmdletBinding()]
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '')]
    param(
        [Parameter(Mandatory)]
        [ValidateSet('Pass', 'Fail', 'Manual', 'Skipped', 'Error')]
        [string]$Status,

        [AllowNull()]
        [object]$Evidence
    )

    [pscustomobject]@{
        Status   = $Status
        Evidence = $Evidence
    }
}