git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [GSoC PATCH v2 1/2] json-writer: add docstrings to jw_* functions

From
Karthik Nayak <karthik.188@gmail.com>
Date
May 12, 2025, 09:36 UTC
Message-ID
<CAOLa=ZS15edO-qEfUdoiHA=P+ukaO=U49R2ZWhXtuuAWvLBZ1Q@mail.gmail.com>
In-Reply-To
<20250512020935.73140-2-lucasseikioshiro@gmail.com>
Lucas Seiki Oshiro <lucasseikioshiro@gmail.com> writes:
[snip]
Show 5 quoted lines
> +/*
> + * Append a double field to the current object of the json_writer, given its key
> + * and its value. The precision parameter can be used for specifying the number
> + * of decimals after the point, using -1 for formatting with the maximum
> + * precision available.
Nit: I would perhaps switch s/using/use to make it present tense and
easier to read.
[snip]
Show 7 quoted lines
> +/*
> + * Append a field to the current object of the json_writer, given its key and
> + * another json_writer that represents its content.
> + */
>  void jw_object_sub_jw(struct json_writer *jw, const char *key,
>  		      const struct json_writer *value);
>

`json-writer.c` also has a docstring for this function, perhaps we can remove that and keep the header file as the source of truth?

Show 27 quoted lines
> +/*
> + * Start an object as the value of a field in the current object of the
> + * json_writer, given the field key.
> + */
>  void jw_object_inline_begin_object(struct json_writer *jw, const char *key);
> +
> +/*
> + * Start an array as the value of a field in the current object of the
> + * json_writer, given the field key.
> + */
>  void jw_object_inline_begin_array(struct json_writer *jw, const char *key);
>
> +/*
> + * Append a string value to the current array of the json_writer.
> + */
>  void jw_array_string(struct json_writer *jw, const char *value);
> +
> +/*
> + * Append an int value to the current array of the json_writer.
> + */
>  void jw_array_intmax(struct json_writer *jw, intmax_t value);
> +
> +/*
> + * Append a double value to the current array of the json_writer. The precision
> + * parameter can be used for specifying the number of decimals after the point,
> + * using -1 for formatting with the maximum precision available.
> + */
Nit: wondering if it might be shorter/nicer to say
  The precision parameter defines the number of significant digits,
  where -1 can be used for maximum precision.
Show 67 quoted lines
>  void jw_array_double(struct json_writer *jw, int precision, double value);
> +
> +/*
> + * Append a true value to the current array of the json_writer.
> + */
>  void jw_array_true(struct json_writer *jw);
> +
> +/*
> + * Append a false value to the current array of the json_writer.
> + */
>  void jw_array_false(struct json_writer *jw);
> +
> +/*
> + * Append a boolean value to the current array of the json_writer.
> + */
>  void jw_array_bool(struct json_writer *jw, int value);
> +
> +/*
> + * Append a null value to the current array of the json_writer.
> + */
>  void jw_array_null(struct json_writer *jw);
> +
> +/*
> + * Append a value to the current array of the json_writer, given the
> + * json_writer that represents its content.
> + */
>  void jw_array_sub_jw(struct json_writer *jw, const struct json_writer *value);
> +
> +/*
> + * Append the first argc values from the argv array of strings to the current
> + * array of the json_writer.
> + *
> + * This function does not provide safety for cases where the array has less than
> + * argc values.
> + */
>  void jw_array_argc_argv(struct json_writer *jw, int argc, const char **argv);
> +
> +/*
> + * Append a null-terminated array of strings to the current array of the
> + * json_writer.
> + */
>  void jw_array_argv(struct json_writer *jw, const char **argv);
>
> +/*
> + * Start an object as a value in the current array of the json_writer.
> + */
>  void jw_array_inline_begin_object(struct json_writer *jw);
> +
> +/*
> + * Start an array as a value in the current array.
> + */
>  void jw_array_inline_begin_array(struct json_writer *jw);
>
> +/*
> + * Return if the json_writer is terminated. In other words, if the all the
> + * objects and arrays are already closed.
> + */
>  int jw_is_terminated(const struct json_writer *jw);
> +
> +/*
> + * Terminates the current object or array of the json_writer. In other words,
> + * append a ] if the current array is not closed or } if the current object
> + * is not closed.
> + *
> + * Abort the execution if there's no object or array that can be terminated.
> + */
>  void jw_end(struct json_writer *jw);

Thanks, overall this looks good, I would drop the 'given its key' or 'given the value field' and similar statements, as they don't provide any additional context, but that is probably just nitpicking.

Previous: Patrick SteinhardtNext: Lucas Seiki Oshiro
Message 6 of 12 in “json-writer: describe the jw_* functions”
  1. 0/2 json-writer: describe the jw_* functionsLucas Seiki Oshiro, May 12, 2025
  2. 1/2 json-writer: add docstrings to jw_* functionsLucas Seiki Oshiro, May 12, 2025
  3. Patrick SteinhardtMay 12, 2025
  4. Lucas Seiki OshiroMay 13, 2025
  5. Patrick SteinhardtMay 14, 2025
  6. Karthik NayakMay 12, 2025
  7. 2/2 json-writer: describe the usage of jw_* functionsLucas Seiki Oshiro, May 12, 2025
  8. Patrick SteinhardtMay 12, 2025
  9. Karthik NayakMay 12, 2025
  10. Lucas Seiki OshiroMay 13, 2025
  11. Patrick SteinhardtMay 14, 2025
  12. Karthik NayakMay 12, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.