MCPcopy Create free account
hub / github.com/danielaparker/jsoncons / parse_column_names

Function parse_column_names

include/jsoncons_ext/csv/csv_options.hpp:64–114  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

62
63template <typename CharT,typename Container>
64void parse_column_names(const std::basic_string<CharT>& names,
65 Container& cont)
66{
67 column_state state = column_state::sequence;
68 typename Container::value_type buffer(cont.get_allocator());
69
70 auto p = names.begin();
71 while (p != names.end())
72 {
73 switch (state)
74 {
75 case column_state::sequence:
76 {
77 switch (*p)
78 {
79 case ' ': case '\t':case '\r': case '\n':
80 ++p;
81 break;
82 default:
83 buffer.clear();
84 state = column_state::label;
85 break;
86 }
87 break;
88 }
89 case column_state::label:
90 {
91 switch (*p)
92 {
93 case ',':
94 cont.push_back(buffer);
95 buffer.clear();
96 ++p;
97 state = column_state::sequence;
98 break;
99 default:
100 buffer.push_back(*p);
101 ++p;
102 break;
103 }
104 break;
105 }
106 }
107 }
108 if (state == column_state::label)
109 {
110 cont.push_back(buffer);
111 buffer.clear();
112 }
113
114} // namespace detail
115
116template <typename CharT,typename Container>
117void parse_column_types(const std::basic_string<CharT>& types,

Callers 2

basic_csv_encoderMethod · 0.85
basic_csv_parserMethod · 0.85

Calls 5

get_allocatorMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
clearMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected