Private/Write-MacadressResult.ps1

function Write-MacadressResult {
    <#
        Internal: tag a decoded lookup result with its type name (so the
        format file can lay it out), make sure it carries the original input
        string, and emit it.
    #>

    param(
        $Result,
        [string] $InputAddress
    )

    if ($null -eq $Result) { return }
    if ($Result -isnot [psobject]) { return $Result }

    if (-not $Result.PSObject.Properties['input'] -and $InputAddress) {
        $Result | Add-Member -NotePropertyName 'input' -NotePropertyValue $InputAddress -Force
    }
    if (-not $Result.PSObject.TypeNames.Contains('Macadress.MacResult')) {
        $Result.PSObject.TypeNames.Insert(0, 'Macadress.MacResult')
    }
    $Result
}