From 5378ffd0aca410c50887fee57899776e62bfb766 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 8 Aug 2021 12:48:37 +0100 Subject: Extract WritePqCopyStrm into its own file --- lib/output/pq/writePqCopyStrm.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 lib/output/pq/writePqCopyStrm.h (limited to 'lib/output/pq/writePqCopyStrm.h') diff --git a/lib/output/pq/writePqCopyStrm.h b/lib/output/pq/writePqCopyStrm.h new file mode 100644 index 0000000..e8a4fd3 --- /dev/null +++ b/lib/output/pq/writePqCopyStrm.h @@ -0,0 +1,38 @@ +#ifndef MYGRATE_OUTPUT_PQ_WRITEPQSTRM_H +#define MYGRATE_OUTPUT_PQ_WRITEPQSTRM_H + +#include +#include +#include + +namespace MyGrate::Output::Pq { + struct WritePqCopyStream { + explicit WritePqCopyStream(FILE * o); + + void nextRecord(); + void nextField(); + + void operator()(std::nullptr_t) const; + void + operator()(std::integral auto v) const + { + fprintf(out, printer::fmt, v); + } + void + operator()(std::floating_point auto v) const + { + fprintf(out, printer::fmt, v); + } + void operator()(timespec) const; + void operator()(Date v) const; + void operator()(Time v) const; + void operator()(DateTime v) const; + void operator()(std::string_view v) const; + void operator()(BitSet) const; + void operator()(Blob v) const; + + FILE * out; + }; +} + +#endif -- cgit v1.2.3