| 
									
										
										
										
											2019-10-18 15:20:09 +09:00
										 |  |  | package yaml | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import "io" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-21 01:29:32 +09:00
										 |  |  | // DecodeOption functional option type for Decoder | 
					
						
							| 
									
										
										
										
											2019-10-18 15:20:09 +09:00
										 |  |  | type DecodeOption func(d *Decoder) error | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-21 01:29:32 +09:00
										 |  |  | // ReferenceReaders pass to Decoder that reference to anchor defined by passed readers | 
					
						
							| 
									
										
										
										
											2019-10-18 15:20:09 +09:00
										 |  |  | func ReferenceReaders(readers ...io.Reader) DecodeOption { | 
					
						
							|  |  |  | 	return func(d *Decoder) error { | 
					
						
							|  |  |  | 		d.referenceReaders = append(d.referenceReaders, readers...) | 
					
						
							|  |  |  | 		return nil | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-21 01:29:32 +09:00
										 |  |  | // ReferenceFiles pass to Decoder that reference to anchor defined by passed files | 
					
						
							| 
									
										
										
										
											2019-10-18 15:20:09 +09:00
										 |  |  | func ReferenceFiles(files ...string) DecodeOption { | 
					
						
							|  |  |  | 	return func(d *Decoder) error { | 
					
						
							|  |  |  | 		d.referenceFiles = files | 
					
						
							|  |  |  | 		return nil | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-21 01:29:32 +09:00
										 |  |  | // ReferenceDirs pass to Decoder that reference to anchor defined by files under the passed dirs | 
					
						
							| 
									
										
										
										
											2019-10-18 15:20:09 +09:00
										 |  |  | func ReferenceDirs(dirs ...string) DecodeOption { | 
					
						
							|  |  |  | 	return func(d *Decoder) error { | 
					
						
							|  |  |  | 		d.referenceDirs = dirs | 
					
						
							|  |  |  | 		return nil | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-21 01:29:32 +09:00
										 |  |  | // RecursiveDir search yaml file recursively from passed dirs by ReferenceDirs option | 
					
						
							| 
									
										
										
										
											2019-10-18 15:20:09 +09:00
										 |  |  | func RecursiveDir(isRecursive bool) DecodeOption { | 
					
						
							|  |  |  | 	return func(d *Decoder) error { | 
					
						
							|  |  |  | 		d.isRecursiveDir = isRecursive | 
					
						
							|  |  |  | 		return nil | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2019-10-19 18:28:36 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-26 10:08:44 +09:00
										 |  |  | // Validator set StructValidator instance to Decoder | 
					
						
							|  |  |  | func Validator(v StructValidator) DecodeOption { | 
					
						
							|  |  |  | 	return func(d *Decoder) error { | 
					
						
							|  |  |  | 		d.validator = v | 
					
						
							|  |  |  | 		return nil | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-21 01:29:32 +09:00
										 |  |  | // EncodeOption functional option type for Encoder | 
					
						
							| 
									
										
										
										
											2019-10-19 18:28:36 +09:00
										 |  |  | type EncodeOption func(e *Encoder) error | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-21 01:29:32 +09:00
										 |  |  | // Indent change indent number | 
					
						
							| 
									
										
										
										
											2019-10-19 18:28:36 +09:00
										 |  |  | func Indent(spaces int) EncodeOption { | 
					
						
							|  |  |  | 	return func(e *Encoder) error { | 
					
						
							|  |  |  | 		e.indent = spaces | 
					
						
							|  |  |  | 		return nil | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } |