public static BSAReader Load(AbsolutePath filename) { var bsa = new BSAReader { _streamFactory = new NativeFileStreamFactory(filename) }; using var rdr = bsa.GetStream(); bsa.LoadHeaders(rdr); return(bsa); }
public static async ValueTask <BSAReader> LoadAsync(IStreamFactory factory) { await using var stream = await factory.GetStream().ConfigureAwait(false); using var br = new BinaryReader(stream); var bsa = new BSAReader { _streamFactory = factory }; bsa.LoadHeaders(br); return(bsa); }
public static async ValueTask <BSAReader> Load(AbsolutePath filename) { using var stream = await filename.OpenRead(); using var br = new BinaryReader(stream); var bsa = new BSAReader { _rdr = br, _stream = stream, _fileName = filename }; await bsa.LoadHeaders(); bsa._rdr = null; bsa._stream = null; return(bsa); }