minor improvements and simplifications
This commit is contained in:
		
							parent
							
								
									d0f2fbc346
								
							
						
					
					
						commit
						cd8982ada0
					
				
					 3 changed files with 5 additions and 8 deletions
				
			
		|  | @ -21,13 +21,14 @@ func (spec *baseSpec) Receivers() []lib.Addressable { | ||||||
| 	return spec.receivers | 	return spec.receivers | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (spec *baseSpec) AddReceiver(rcv lib.Addressable) { | func (spec *baseSpec) AddReceiver(rcv lib.Addressable) lib.ActionSpec { | ||||||
| 	for _, r := range spec.receivers { | 	for _, r := range spec.receivers { | ||||||
| 		if r == rcv { | 		if r == rcv { | ||||||
| 			return | 			return spec | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	spec.receivers = append(spec.receivers, rcv) | 	spec.receivers = append(spec.receivers, rcv) | ||||||
|  | 	return spec | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func Base(hdlr lib.ActionHandler, rcvs ...string) *baseSpec { | func Base(hdlr lib.ActionHandler, rcvs ...string) *baseSpec { | ||||||
|  | @ -38,10 +39,6 @@ func Base(hdlr lib.ActionHandler, rcvs ...string) *baseSpec { | ||||||
| 	return &spec | 	return &spec | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func BaseA(hdlr lib.ActionHandler, rcvs ...lib.Addressable) *baseSpec { |  | ||||||
| 	return &baseSpec{hdlr, rcvs} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // action selection | // action selection | ||||||
| 
 | 
 | ||||||
| func Select(ctx lib.Context, msg lib.Message) []lib.Action { | func Select(ctx lib.Context, msg lib.Message) []lib.Action { | ||||||
|  |  | ||||||
|  | @ -40,7 +40,7 @@ func connect(src, tgt lib.Context, msg lib.Message) { | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	cfg.AddAction(pattern, action.BaseA(handle, tgt)) | 	cfg.AddAction(pattern, action.Base(handle).AddReceiver(tgt)) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func handle(act lib.Action) bool { | func handle(act lib.Action) bool { | ||||||
|  |  | ||||||
|  | @ -83,7 +83,7 @@ type Action interface { | ||||||
| type ActionSpec interface { | type ActionSpec interface { | ||||||
| 	Handler() ActionHandler | 	Handler() ActionHandler | ||||||
| 	Receivers() []Addressable | 	Receivers() []Addressable | ||||||
| 	AddReceiver(Addressable) | 	AddReceiver(Addressable) ActionSpec | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // procedures and handlers | // procedures and handlers | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue