+/** \file format.h Exported symbols from \p format.c. */
+
+/** The possible types of format string directives (aka atoms). */
+enum atom_type {
+ /** String, supports alignment and width. */
+ AT_STRING,
+ /** Used for user IDs, supports alignment and width. */
+ AT_ID,
+ /**
+ * Used for number of files/directories, supports alignment,
+ * width, unit.
+ */
+ AT_COUNT,
+ /**
+ * Used for number of bytes. Like \p AT_COUNT, but the unit is
+ * treated differently: By default, 1024 is used as the base,
+ * and low numbers get a "b" (bytes) appended which does not make
+ * sense for counters.
+ */
+ AT_SIZE
+};
+
+/**
+ * One format string directive.
+ *
+ * Each application must define its own set of valid atoms as an array
+ * of struct atom. The \ref parse_format_string() function takes a format
+ * string and the array of valid atoms and returns an opaque pointer to
+ * a struct \a format_info.
+ *
+ * At a later time the application may pass the \a format_info pointer
+ * together with the current value for each atom to \a format_items() which
+ * returns these values, formated according to the format string which has
+ * been passed to parse_format_string() previously.
+ *
+ * Usually, the application will call parse_format_string() only once, but
+ * format_items() many times.