in net/JetBrains.FormatRipper/src/FileExplorer/FileTypeExplorer.cs [15:44]
public static Result Detect(Stream stream) => new(
TryParsePe(stream, out var properties) ? FileType.Pe :
TryParseElf(stream, out properties) ? FileType.Elf :
TryParseMachO(stream, out properties) ? FileType.MachO :
TryParseMsi(stream, out properties) ? FileType.Msi :
TryParseSh(stream, out properties) ? FileType.Sh :
TryParseDmg(stream, out properties) ? FileType.Dmg :
FileType.Unknown, properties);
#if !(NET20 || NET30)
public static Result DetectFileType(this Stream stream) => Detect(stream);
#endif
public readonly struct Result
{
public Result(FileType fileType, FileProperties fileProperties)
{
FileType = fileType;
FileProperties = fileProperties;
}
public readonly FileType FileType;
public readonly FileProperties FileProperties;
public void Deconstruct(out FileType fileType, out FileProperties fileProperties)
{
fileType = FileType;
fileProperties = FileProperties;
}
}