mirror of
				https://github.com/goccy/go-yaml.git
				synced 2025-10-31 13:21:07 +00:00 
			
		
		
		
	Add EncodeToNode(interface{}) (ast.Node, error)
This commit is contained in:
		
							parent
							
								
									c6273cdf6e
								
							
						
					
					
						commit
						41c7fbad9f
					
				
					 1 changed files with 16 additions and 7 deletions
				
			
		
							
								
								
									
										23
									
								
								encode.go
									
										
									
									
									
								
							
							
						
						
									
										23
									
								
								encode.go
									
										
									
									
									
								
							|  | @ -68,20 +68,29 @@ func (e *Encoder) Close() error { | |||
| // | ||||
| // See the documentation for Marshal for details about the conversion of Go values to YAML. | ||||
| func (e *Encoder) Encode(v interface{}) error { | ||||
| 	for _, opt := range e.opts { | ||||
| 		if err := opt(e); err != nil { | ||||
| 			return errors.Wrapf(err, "failed to run option for encoder") | ||||
| 		} | ||||
| 	} | ||||
| 	node, err := e.encodeValue(reflect.ValueOf(v), 1) | ||||
| 	node, err := e.EncodeToNode(v) | ||||
| 	if err != nil { | ||||
| 		return errors.Wrapf(err, "failed to encode value") | ||||
| 		return errors.Wrapf(err, "failed to encode to node") | ||||
| 	} | ||||
| 	var p printer.Printer | ||||
| 	e.writer.Write(p.PrintNode(node)) | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // EncodeToNode convert v to ast.Node. | ||||
| func (e *Encoder) EncodeToNode(v interface{}) (ast.Node, error) { | ||||
| 	for _, opt := range e.opts { | ||||
| 		if err := opt(e); err != nil { | ||||
| 			return nil, errors.Wrapf(err, "failed to run option for encoder") | ||||
| 		} | ||||
| 	} | ||||
| 	node, err := e.encodeValue(reflect.ValueOf(v), 1) | ||||
| 	if err != nil { | ||||
| 		return nil, errors.Wrapf(err, "failed to encode value") | ||||
| 	} | ||||
| 	return node, nil | ||||
| } | ||||
| 
 | ||||
| func (e *Encoder) encodeDocument(doc []byte) (ast.Node, error) { | ||||
| 	f, err := parser.ParseBytes(doc, 0) | ||||
| 	if err != nil { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Masaaki Goshima
						Masaaki Goshima