PLYwoot
Header-only C++17 library for parsing and writing PLY files
Loading...
Searching...
No Matches
header_scanner_ios.hpp
Go to the documentation of this file.
1/*
2 This file is part of PLYwoot, a header-only PLY parser.
3
4 Copyright (C) 2023-2025, Ton van den Heuvel
5
6 PLYwoot is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#ifndef PLYWOOT_HEADER_SCANNER_IOS_HPP
21#define PLYWOOT_HEADER_SCANNER_IOS_HPP
22
24
25#include <ostream>
26
27namespace plywoot::detail {
28
35inline std::ostream &operator<<(std::ostream &os, HeaderScanner::Token t)
36{
37 switch (t)
38 {
39 case HeaderScanner::Token::Unknown:
40 return os << "<unknown>";
41 case HeaderScanner::Token::Ascii:
42 return os << "ascii";
43 case HeaderScanner::Token::BinaryBigEndian:
44 return os << "binary_big_endian";
45 case HeaderScanner::Token::BinaryLittleEndian:
46 return os << "binary_little_endian";
47 case HeaderScanner::Token::Char:
48 return os << "char";
49 case HeaderScanner::Token::Comment:
50 return os << "comment";
51 case HeaderScanner::Token::Double:
52 return os << "double";
53 case HeaderScanner::Token::Element:
54 return os << "element";
55 case HeaderScanner::Token::EndHeader:
56 return os << "end_header";
57 case HeaderScanner::Token::Eof:
58 return os << "<eof>";
59 case HeaderScanner::Token::Float:
60 return os << "float";
61 case HeaderScanner::Token::FloatingPointNumber:
62 return os << "<floating point number>";
63 case HeaderScanner::Token::Format:
64 return os << "format";
65 case HeaderScanner::Token::Identifier:
66 return os << "<identifier>";
67 case HeaderScanner::Token::Int:
68 return os << "int";
69 case HeaderScanner::Token::List:
70 return os << "list";
71 case HeaderScanner::Token::Number:
72 return os << "<number>";
73 case HeaderScanner::Token::MagicNumber:
74 return os << "ply";
75 case HeaderScanner::Token::Property:
76 return os << "property";
77 case HeaderScanner::Token::Short:
78 return os << "short";
79 case HeaderScanner::Token::UChar:
80 return os << "uchar";
81 case HeaderScanner::Token::UInt:
82 return os << "uint";
83 case HeaderScanner::Token::UShort:
84 return os << "ushort";
85 }
86
87 return os;
88}
89
90}
91
92#endif
std::ostream & operator<<(std::ostream &os, HeaderScanner::Token t)