func fallThrough(d dynamics.Dwimmer, s *term.SettingT, quotedSetting term.T) term.T { settingT, err := represent.ToSettingT(d, quotedSetting) if err != nil { return term.Make("asked to decide what to do in setting [], "+ "but while converting to a setting received []").T(quotedSetting, err) } transition := ElicitAction(d, s, settingT.Setting) if shouldSave(transition) { d.Save(settingT.Setting, transition) } return TakeTransition.T(represent.Transition(transition)) }
func findAction(d dynamics.Dwimmer, s *term.SettingT, quotedSetting term.T) term.T { setting, err := represent.ToSetting(d, quotedSetting) if err != nil { return term.Make("asked to decide what to do in setting [], "+ "but while converting to a setting received []").T(quotedSetting, err) } transition, ok := d.Get(setting) if !ok { transition := ElicitAction(d, s, setting) d.Save(setting, transition) } return core.Answer.T(represent.Transition(transition)) }
func setTransition(d dynamics.Dwimmer, s *term.SettingT, quotedTransition, quotedSetting term.T) term.T { transition, err := represent.ToTransition(d, quotedTransition) if err != nil { return term.Make("asked to set a setting to transition [], "+ "but while converting to a transition received []").T(quotedTransition, err) } setting, err := represent.ToSetting(d, quotedSetting) if err != nil { return term.Make("asked to set a transition in setting [], "+ "but while converting to a setting received []").T(quotedSetting, err) } d.Save(setting, transition) return core.OK.T() }