Esempio n. 1
0
// Tags returns the tags for the current message, returning a *Tags which can
// be used to iterate over all tags using `Tags.Next(Tag)`
func (m *Message) Tags() *Tags {
	ctags := C.notmuch_message_get_tags(m.toC())
	tags := &Tags{
		cptr:   unsafe.Pointer(ctags),
		parent: (*cStruct)(m),
	}
	setGcClose(tags)
	return tags
}
Esempio n. 2
0
/* Get the tags for 'message', returning a notmuch_tags_t object which
 * can be used to iterate over all tags.
 *
 * The tags object is owned by the message and as such, will only be
 * valid for as long as the message is valid, (which is until the
 * query from which it derived is destroyed).
 *
 * Typical usage might be:
 *
 *     notmuch_message_t *message;
 *     notmuch_tags_t *tags;
 *     const char *tag;
 *
 *     message = notmuch_database_find_message (database, message_id);
 *
 *     for (tags = notmuch_message_get_tags (message);
 *          notmuch_tags_valid (tags);
 *          notmuch_result_move_to_next (tags))
 *     {
 *         tag = notmuch_tags_get (tags);
 *         ....
 *     }
 *
 *     notmuch_message_destroy (message);
 *
 * Note that there's no explicit destructor needed for the
 * notmuch_tags_t object. (For consistency, we do provide a
 * notmuch_tags_destroy function, but there's no good reason to call
 * it if the message is about to be destroyed).
 */
func (self *Message) GetTags() *Tags {
	if self.message == nil {
		return nil
	}
	tags := C.notmuch_message_get_tags(self.message)
	if tags == nil {
		return nil
	}
	return &Tags{tags: tags}
}