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 18 typedef struct { 19 char* data; 20 size_t length; 21 } sstream_t; 22 23 void ssinit(sstream_t* stream); 24 void ssfree(sstream_t* stream); 25 26 /* Returns the number of bytes added to the stream. */ 27 int ssvprintf(sstream_t* sstream, const char* format, va_list args); 28 int ssprintf(sstream_t* sstream, const char* format, ...); 29 30 #endif /* ERROR_HANDLING_STRING_STREAM_H */ 31