#pragma once
#include <rust/cxx.h>
#include <memory>
#include <filesystem>
#include "fls/connection.hpp"
#include "fls/reader/table_reader.hpp"
using Connection = fastlanes::Connection; using TableReader = fastlanes::TableReader;
rust::String get_version();
std::unique_ptr<Connection> connect();
inline Connection& inline_footer(Connection& c) { return c.inline_footer(); }
inline Connection& read_csv (Connection& c, rust::Str dir){ return c.read_csv(std::filesystem::path{std::string(dir)}); }
inline Connection& to_fls (Connection& c, rust::Str out){ return c.to_fls (std::filesystem::path{std::string(out)}); }
inline std::unique_ptr<TableReader>
read_fls(Connection& c, rust::Str p)
{
return c.read_fls(std::filesystem::path{std::string(p)});
}
inline TableReader&
to_csv(TableReader& r, rust::Str p)
{
r.to_csv(std::string(p)); return r;
}