[wpiutil] Upgrade to fmt 10.2.1, add wpi::print (#6161)

We now use a wrapper (wpi::print) to catch exceptions since we can't patch
std::print() to not throw when we ultimately migrate to it.

fmtlib and std format/print throw the same exceptions and always have. We previously patched fmt::print() to not throw a write failure exception, but we can't do that for std::print(); wpi::print() is the migration plan.
This commit is contained in:
Tyler Veness
2024-05-12 06:25:42 -07:00
committed by GitHub
parent 6c9dcc157e
commit d88c71ffdc
99 changed files with 1374 additions and 1130 deletions

View File

@@ -6,8 +6,8 @@
#include <cstdio>
#include <fmt/format.h>
#include <wpi/SmallString.h>
#include <wpi/print.h>
#include <wpinet/raw_uv_ostream.h>
#include <wpinet/uv/util.h>
@@ -20,7 +20,7 @@ namespace wpilibws {
// Create Web Socket and specify event callbacks
void WebServerClientTest::InitializeWebSocket(const std::string& host, int port,
const std::string& uri) {
fmt::print("Will attempt to connect to: {}:{}{}\n", host, port, uri);
wpi::print("Will attempt to connect to: {}:{}{}\n", host, port, uri);
m_websocket = wpi::WebSocket::CreateClient(*m_tcp_client.get(), uri,
fmt::format("{}:{}", host, port));
@@ -46,7 +46,7 @@ void WebServerClientTest::InitializeWebSocket(const std::string& host, int port,
} catch (const wpi::json::parse_error& e) {
std::string err("JSON parse failed: ");
err += e.what();
fmt::print(stderr, "{}\n", err);
wpi::print(stderr, "{}\n", err);
m_websocket->Fail(1003, err);
return;
}
@@ -65,7 +65,7 @@ void WebServerClientTest::InitializeWebSocket(const std::string& host, int port,
// Create tcp client, specify callbacks, and create timers for loop
bool WebServerClientTest::Initialize() {
m_loop.error.connect(
[](uv::Error err) { fmt::print(stderr, "uv Error: {}\n", err.str()); });
[](uv::Error err) { wpi::print(stderr, "uv Error: {}\n", err.str()); });
m_tcp_client = uv::Tcp::Create(m_loop);
if (!m_tcp_client) {
@@ -106,7 +106,7 @@ bool WebServerClientTest::Initialize() {
void WebServerClientTest::AttemptConnect() {
m_connect_attempts++;
fmt::print("Test Client Connection Attempt {}\n", m_connect_attempts);
wpi::print("Test Client Connection Attempt {}\n", m_connect_attempts);
if (m_connect_attempts >= 5) {
std::fputs("Test Client Timeout. Unable to connect\n", stderr);
@@ -144,7 +144,7 @@ void WebServerClientTest::SendMessage(const wpi::json& msg) {
m_buffers->Release(bufs);
}
if (err) {
fmt::print(stderr, "{}\n", err.str());
wpi::print(stderr, "{}\n", err.str());
std::fflush(stderr);
}
});