.\" Man page generated from reStructuredText. . .TH "BSON_STRING_T" "3" "Jun 04, 2021" "1.17.6" "libbson" .SH NAME bson_string_t \- bson_string_t . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .sp String Building Abstraction .SH SYNOPSIS .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C #include typedef struct { char *str; uint32_t len; uint32_t alloc; } bson_string_t; .ft P .fi .UNINDENT .UNINDENT .SH DESCRIPTION .sp \fBbson_string_t\fP is an abstraction for building strings. As chunks are added to the string, allocations are performed in powers of two. .sp This API is useful if you need to build UTF\-8 encoded strings. .SH EXAMPLE .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C bson_string_t *str; str = bson_string_new (NULL); bson_string_append_printf (str, "%d %s %f\en", 0, "some string", 0.123); printf ("%s\en", str\->str); bson_string_free (str, true); .ft P .fi .UNINDENT .UNINDENT .sp \fBTIP:\fP .INDENT 0.0 .INDENT 3.5 You can call \fBbson_string_free()\fP with \fBfalse\fP if you would like to take ownership of \fBstr\->str\fP\&. Some APIs that do this might call \fBreturn bson_string_free (str, false);\fP after building the string. .UNINDENT .UNINDENT .SH AUTHOR MongoDB, Inc .SH COPYRIGHT 2017-present, MongoDB, Inc .\" Generated by docutils manpage writer. .