code: func yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t,
  	root bool, sequence bool, mapping bool, simple_key bool) bool {
  
  	emitter.root_context = root
  	emitter.sequence_context = sequence
  	emitter.mapping_context = mapping
  	emitter.simple_key_context = simple_key
  
  	switch event.typ {
  	case yaml_ALIAS_EVENT:
  		return yaml_emitter_emit_alias(emitter, event)
  	case yaml_SCALAR_EVENT:
  		return yaml_emitter_emit_scalar(emitter, event)
  	case yaml_SEQUENCE_START_EVENT:
  		return yaml_emitter_emit_sequence_start(emitter, event)
  	case yaml_MAPPING_START_EVENT:
  		return yaml_emitter_emit_mapping_start(emitter, event)
  	default:
  		return yaml_emitter_set_emitter_error(emitter,
  			fmt.Sprintf("expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v", event.typ))
  	}
  }
docs: // Expect a node.