24#ifndef TVM_SUPPORT_FILE_UTILS_H_
25#define TVM_SUPPORT_FILE_UTILS_H_
27#include <tvm/ffi/error.h>
28#include <tvm/ffi/string.h>
38inline ffi::String
GetFileFormat(
const ffi::String& path,
const ffi::String& format) {
39 if (!format.empty())
return format;
40 std::string file_name = path;
41 size_t pos = file_name.find_last_of(
'.');
42 return pos == std::string::npos ? ffi::String() : ffi::String(file_name.substr(pos + 1));
47 std::ifstream fs(path.c_str(), std::ios::in | std::ios::binary);
48 TVM_FFI_ICHECK(!fs.fail()) <<
"Cannot open " << path;
49 fs.seekg(0, std::ios::end);
50 size_t size =
static_cast<size_t>(fs.tellg());
51 fs.seekg(0, std::ios::beg);
52 std::string data(size,
'\0');
53 fs.read(data.data(), size);
54 return ffi::Bytes(std::move(data));
59 std::ofstream fs(path.c_str(), std::ios::out | std::ios::binary);
60 TVM_FFI_ICHECK(!fs.fail()) <<
"Cannot open " << path;
61 fs.write(data.data(), data.size());
ffi::String GetFileFormat(const ffi::String &path, const ffi::String &format)
Get the explicit format, or the extension of the file path.
Definition file_utils.h:38
void WriteBytesToFile(const ffi::String &path, const ffi::Bytes &data)
Write binary bytes to a file.
Definition file_utils.h:58
ffi::Bytes ReadBytesFromFile(const ffi::String &path)
Read a file as binary bytes.
Definition file_utils.h:46
An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
Definition attr.h:23