nk 1.0.0
C++ Numerical Computing Runtime
Loading...
Searching...
No Matches
io/include/nk/io/text/extras.hpp
1// toolboxes/io/include/nk/io/text/extras.hpp
2//
3// Modern text-file helpers.
4
5#pragma once
6
7#include <functional>
8#include <memory_resource>
9#include <nk/value/value.hpp>
10
11#include <string>
12
13namespace nk { class FsContext; }
14
15namespace nk::io {
16
17using ::nk::FsContext;
18
22std::string slurpFile(FsContext &fs, const std::string &filename,
23 const char *fnName);
24
31
42Value readmatrixFromString(const std::string &content,
43 std::pmr::memory_resource *mr = nullptr);
44
53std::string writematrixToString(const Value &m);
54
63Value fileread(FsContext &fs, const std::string &filename,
64 std::pmr::memory_resource *mr = nullptr);
65
75Value readlines(FsContext &fs, const std::string &filename,
76 std::pmr::memory_resource *mr = nullptr);
77
88void writelines(FsContext &fs, const Value &lines, const std::string &filename);
89
101Value readmatrix(FsContext &fs, const std::string &filename,
102 std::pmr::memory_resource *mr = nullptr);
103
114void writematrix(FsContext &fs, const Value &m, const std::string &filename);
115
127void type(FsContext &fs,
128 const std::function<void(const std::string &)> &out,
129 const std::string &filename);
130
131} // namespace nk::io