view src/lib/ostream-escaped.h @ 23007:36e01285b5b8

lib: buffer - Improve header comment for buffer_insert() and buffer_delete().
author Stephan Bosch <stephan.bosch@dovecot.fi>
date Mon, 18 Mar 2019 00:52:37 +0100
parents a3872143befd
children
line wrap: on
line source

#ifndef OSTREAM_ESCAPED_H
#define OSTREAM_ESCAPED_H

/**
  * Provides escape filter for ostream
  * This is intended to be used when certain (or all)
  * characters need to be escaped before sending.

  * Such usecases are f.ex.
  *  - JSON, ostream_escaped_json_format
  *  - hex,  ostream_escaped_hex_format

  * To implement your own filter, create function
  * that matches ostream_escaped_escape_formatter_t
  * and use it as parameter
  */

typedef void (*ostream_escaped_escape_formatter_t)
	(string_t *dest, unsigned char chr);

void ostream_escaped_hex_format(string_t *dest, unsigned char chr);

struct ostream *
o_stream_create_escaped(struct ostream *output,
			ostream_escaped_escape_formatter_t formatter);

#endif