1
0
Files
wavefront-parser/src/trim.cpp
Plamen Dragiyski adeeae3aff feature: stages
stages: separate scanning and parsing, allowing `v`, `vn`, `vt` lines to
be mapped to line numbers and store line data (once).

first stage parsing: parse face data and validate vertices.

TODO:
* improve validation (detect partial normals/texcoords);
* maybe improve storage of triangle line number instead of storing line
  number for each vertex;
2025-10-19 13:45:55 +03:00

17 lines
540 B
C++

#include "trim.hpp"
namespace wavefront {
std::string_view trim(const std::string_view &source) {
auto start = source.data();
// size is the size of buffer, data() + size() is the first available byte after the string.
auto end = source.data() + source.size() - 1;
while (start < end && std::isspace(*start)) {
++start;
}
while (start < end && (std::isspace(*end) || *end == 0)) {
--end;
}
return std::string_view(start, end - start + 1);
}
}