code: func yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool {
  	for i := range parser.tag_directives {
  		if bytes.Equal(value.handle, parser.tag_directives[i].handle) {
  			if allow_duplicates {
  				return true
  			}
  			return yaml_parser_set_parser_error(parser, "found duplicate %TAG directive", mark)
  		}
  	}
  
  	// [Go] I suspect the copy is unnecessary. This was likely done
  	// because there was no way to track ownership of the data.
  	value_copy := yaml_tag_directive_t{
  		handle: make([]byte, len(value.handle)),
  		prefix: make([]byte, len(value.prefix)),
  	}
  	copy(value_copy.handle, value.handle)
  	copy(value_copy.prefix, value.prefix)
  	parser.tag_directives = append(parser.tag_directives, value_copy)
  	return true
  }
docs: // Append a tag directive to the directives stack.