/
Print.h
52 lines (38 loc) 路 946 Bytes
/
Print.h
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// StreamUtils - github.com/bblanchon/ArduinoStreamUtils
// Copyright Benoit Blanchon 2019-2023
// MIT License
#pragma once
#include "WString.h"
#include <stdint.h>
#include <cstring>
namespace arduino {
struct Print {
virtual size_t write(const uint8_t *buffer, size_t size) = 0;
virtual size_t write(uint8_t data) = 0;
virtual void flush() {}
virtual int availableForWrite() {
return 0;
}
size_t write(const char *buffer, size_t size) {
return write((const uint8_t *)buffer, size);
}
size_t print(const String &s) {
return write(s.c_str(), s.length());
}
size_t print(const char *s) {
return write(s, std::strlen(s));
}
size_t println() {
return 0;
}
template <typename T>
size_t print(const T &value) {
return print(String(value));
}
template <typename T>
size_t println(const T &value) {
return print(value);
}
};
} // namespace arduino
using namespace arduino;