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