private T AcceptSignatureWithHeader()

in src/Refasmer/Importer/SignatureImport.cs [74:101]


    private T AcceptSignatureWithHeader<T>(BlobHandle srcHandle, ISignatureVisitor<T> visitor)
    {
        var blobReader = _reader.GetBlobReader(srcHandle);
        visitor.VisitReader(blobReader);
            
        var header = blobReader.ReadSignatureHeader();
        visitor.WriteByte(header.RawValue);

        switch (header.Kind)
        {
            case SignatureKind.Method:
            case SignatureKind.Property:
                AcceptMethodSignature(header, ref blobReader, visitor);
                break;
            case SignatureKind.Field:
                AcceptFieldSignature(ref blobReader, visitor);
                break;
            case SignatureKind.LocalVariables:
                AcceptLocalSignature(ref blobReader, visitor);
                break;
            case SignatureKind.MethodSpecification:
                AcceptMethodSpecSignature(ref blobReader, visitor);
                break;
            default:
                throw new BadImageFormatException();
        }
        return visitor.GetResult();
    }