aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-dataloader/csv/CsvParseState.hpp
blob: 239045318de45aecfa894dc9e531cff6c055e2f4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#pragma once

#include <openvic-dataloader/File.hpp>
#include <openvic-dataloader/ParseState.hpp>
#include <openvic-dataloader/csv/LineObject.hpp>
#include <openvic-dataloader/csv/Parser.hpp>

#include <lexy/encoding.hpp>

template<ovdl::csv::EncodingType>
struct LexyEncodingFrom {
};

template<>
struct LexyEncodingFrom<ovdl::csv::EncodingType::Windows1252> {
   using encoding = lexy::default_encoding;
};

template<>
struct LexyEncodingFrom<ovdl::csv::EncodingType::Utf8> {
   using encoding = lexy::utf8_char_encoding;
};

template<ovdl::csv::EncodingType Encoding>
using CsvFile = ovdl::BasicFile<typename LexyEncodingFrom<Encoding>::encoding, std::vector<ovdl::csv::LineObject>>;

template<ovdl::csv::EncodingType Encoding>
using CsvParseState = ovdl::FileParseState<CsvFile<Encoding>>;