1/*
2 * Copyright (c) 2013 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file.
5 */
6
7#ifndef ERROR_HANDLING_STRING_STREAM_H
8#define ERROR_HANDLING_STRING_STREAM_H
9
10/*
11 * Support for a stream stream in 'C', which is appended to via an sprintf-like
12 * function.
13 */
14
15#include <stdarg.h>
16#include <stdint.h>
17
18typedef struct {
19  char* data;
20  size_t length;
21} sstream_t;
22
23void ssinit(sstream_t* stream);
24void ssfree(sstream_t* stream);
25
26/* Returns the number of bytes added to the stream. */
27int ssvprintf(sstream_t* sstream, const char* format, va_list args);
28int ssprintf(sstream_t* sstream, const char* format, ...);
29
30#endif  /* ERROR_HANDLING_STRING_STREAM_H */
31