16#ifndef LIEF_FILE_STREAM_H
17#define LIEF_FILE_STREAM_H
23#include "LIEF/errors.hpp"
24#include "LIEF/BinaryStream/BinaryStream.hpp"
42 uint64_t size()
const override {
46 std::vector<uint8_t> content()
const;
52 ok_error_t peek_in(
void* dst, uint64_t offset, uint64_t size)
const override {
53 if (offset > size_ || offset + size > size_) {
54 return make_error_code(lief_errors::read_error);
56 const auto pos = ifs_.tellg();
58 ifs_.read(
static_cast<char*
>(dst), size);
63 return make_error_code(lief_errors::not_supported);
65 mutable std::ifstream ifs_;
Class that is used to a read stream of data from different sources.
Definition BinaryStream.hpp:34
Stream interface over a std::ifstream.
Definition FileStream.hpp:28
LIEF namespace.
Definition Abstract/Binary.hpp:32
result< ok_t > ok_error_t
Opaque structure that is used by LIEF to avoid writing result<void> f(...). Instead,...
Definition errors.hpp:106
ok_t ok()
Return success for function with return type ok_error_t.
Definition errors.hpp:90
tl::expected< T, lief_errors > result
Wrapper that contains an Object (T) or an error.
Definition errors.hpp:72