f684e87d4e2d192efdf5984d18fcede3f5a33771Timo Sirainen/* Note that these flags are used directly by message-parser-serialize, so
f684e87d4e2d192efdf5984d18fcede3f5a33771Timo Sirainen existing flags can't be changed without breaking backwards compatibility */
f684e87d4e2d192efdf5984d18fcede3f5a33771Timo Sirainen /* content-type: text/... */
f684e87d4e2d192efdf5984d18fcede3f5a33771Timo Sirainen /* message part header or body contains NULs */
f684e87d4e2d192efdf5984d18fcede3f5a33771Timo Sirainen /* Mime-Version header exists. */
f684e87d4e2d192efdf5984d18fcede3f5a33771Timo Sirainen uoff_t physical_pos; /* absolute position from beginning of message */
6b8d5b8d02bd888609f06366ffb5a5a1e6e7d251Timo Sirainen /* total number of message_parts under children */
6b8d5b8d02bd888609f06366ffb5a5a1e6e7d251Timo Sirainen/* Return index number for the message part. The indexes are in the same order
6b8d5b8d02bd888609f06366ffb5a5a1e6e7d251Timo Sirainen as they exist in the flat RFC822 message. The root part is 0, its first
6b8d5b8d02bd888609f06366ffb5a5a1e6e7d251Timo Sirainen child is 1 and so on. */
6b8d5b8d02bd888609f06366ffb5a5a1e6e7d251Timo Sirainenunsigned int message_part_to_idx(const struct message_part *part);
6b8d5b8d02bd888609f06366ffb5a5a1e6e7d251Timo Sirainen/* Find message part by its index number, or return NULL if the index
6b8d5b8d02bd888609f06366ffb5a5a1e6e7d251Timo Sirainen doesn't exist. */
6b8d5b8d02bd888609f06366ffb5a5a1e6e7d251Timo Sirainenmessage_part_by_idx(struct message_part *parts, unsigned int idx);