Add optional container
This commit is contained in:
		
							parent
							
								
									fc1af9f4a1
								
							
						
					
					
						commit
						1547391126
					
				
							
								
								
									
										31
									
								
								container/optional.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								container/optional.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | ||||
| package ucontainer | ||||
| 
 | ||||
| // Optional is an optional value. | ||||
| type Optional[T any] struct { | ||||
| 	value T | ||||
| 	exists bool | ||||
| } | ||||
| 
 | ||||
| // Value returns the value and true if the value exists. If not, it returns the | ||||
| // last set value and false. | ||||
| func (this *Optional[T]) Value () (T, bool) { | ||||
| 	return this.value, this.exists | ||||
| } | ||||
| 
 | ||||
| // Set sets the value. | ||||
| func (this *Optional[T]) Set (value T) { | ||||
| 	this.value = value | ||||
| 	this.exists = true | ||||
| } | ||||
| 
 | ||||
| // Unset unsets the value. | ||||
| func (this *Optional[T]) Unset () { | ||||
| 	var zero T | ||||
| 	this.value = zero | ||||
| 	this.exists = false | ||||
| } | ||||
| 
 | ||||
| // Exists returns if the value is currently set. | ||||
| func (this *Optional[T]) Exists () bool { | ||||
| 	return this.exists | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user