Use simplified reset on empty input solution
This commit is contained in:
		
							parent
							
								
									6c77d04284
								
							
						
					
					
						commit
						1d7027905d
					
				@ -81,6 +81,7 @@ func main() {
 | 
			
		||||
		OutputSize:    uint32(size),
 | 
			
		||||
		FlagCount:     uint32(128),
 | 
			
		||||
		MenuSeparator: menuSeparator,
 | 
			
		||||
		ResetOnEmptyInput: true,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if engineDebug {
 | 
			
		||||
 | 
			
		||||
@ -96,6 +96,7 @@ func main() {
 | 
			
		||||
		OutputSize:    uint32(size),
 | 
			
		||||
		FlagCount:     uint32(128),
 | 
			
		||||
		MenuSeparator: menuSeparator,
 | 
			
		||||
		ResetOnEmptyInput: true,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if engineDebug {
 | 
			
		||||
@ -130,7 +131,6 @@ func main() {
 | 
			
		||||
	lhs.SetDataStore(&userdataStore)
 | 
			
		||||
 | 
			
		||||
	accountService := services.New(ctx, menuStorageService)
 | 
			
		||||
 | 
			
		||||
	hl, err := lhs.GetHandler(accountService)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Fprintf(os.Stderr, err.Error())
 | 
			
		||||
@ -190,10 +190,10 @@ func main() {
 | 
			
		||||
		}
 | 
			
		||||
		fmt.Println("")
 | 
			
		||||
		in := bufio.NewReader(os.Stdin)
 | 
			
		||||
		//_, err = fmt.Scanln(&rqs.Input)
 | 
			
		||||
		s, err := in.ReadString('\n')
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if err == io.EOF {
 | 
			
		||||
				logg.DebugCtxf(ctx, "have EOF, bailing")
 | 
			
		||||
				break
 | 
			
		||||
			}
 | 
			
		||||
			logg.ErrorCtxf(ctx, "error in input", "err", err)
 | 
			
		||||
 | 
			
		||||
@ -82,6 +82,7 @@ func main() {
 | 
			
		||||
		OutputSize:    uint32(size),
 | 
			
		||||
		FlagCount:     uint32(128),
 | 
			
		||||
		MenuSeparator: menuSeparator,
 | 
			
		||||
		ResetOnEmptyInput: true,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if engineDebug {
 | 
			
		||||
 | 
			
		||||
@ -80,6 +80,7 @@ func main() {
 | 
			
		||||
		FlagCount:     uint32(128),
 | 
			
		||||
		MenuSeparator: menuSeparator,
 | 
			
		||||
		EngineDebug: engineDebug,
 | 
			
		||||
		ResetOnEmptyInput: true,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	menuStorageService := storage.NewMenuStorageService(conns)
 | 
			
		||||
 | 
			
		||||
@ -2,10 +2,14 @@ package engine
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"git.defalsify.org/vise.git/engine"
 | 
			
		||||
	"git.defalsify.org/vise.git/resource"
 | 
			
		||||
	"git.defalsify.org/vise.git/logging"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	logg = logging.NewVanilla().WithDomain("sarafu-vise.engine")
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type SarafuEngine struct {
 | 
			
		||||
@ -19,13 +23,13 @@ func NewSarafuEngine(cfg engine.Config, rs resource.Resource) *SarafuEngine {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (se *SarafuEngine) Exec(ctx context.Context, input []byte) (bool, error) {
 | 
			
		||||
	if len(input) == 0 {
 | 
			
		||||
		e, ok := se.Engine.(*engine.DefaultEngine)
 | 
			
		||||
		if !ok {
 | 
			
		||||
			return false, fmt.Errorf("")
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		e.Reset(ctx, true)
 | 
			
		||||
	}
 | 
			
		||||
	logg.TraceCtxf(ctx, "sarafu engine exec", "input", input)
 | 
			
		||||
//	if len(input) == 0 {
 | 
			
		||||
//		e := se.Engine.(*engine.DefaultEngine)
 | 
			
		||||
//		v, err := e.Reset(ctx, true)
 | 
			
		||||
//		if err != nil {
 | 
			
		||||
//			return v, err
 | 
			
		||||
//		}
 | 
			
		||||
//	}
 | 
			
		||||
	return se.Engine.Exec(ctx, input)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							@ -3,7 +3,7 @@ module git.grassecon.net/grassrootseconomics/sarafu-vise
 | 
			
		||||
go 1.23.4
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	git.defalsify.org/vise.git v0.2.3-0.20250205092758-ea6bfa050eeb
 | 
			
		||||
	git.defalsify.org/vise.git v0.2.3-0.20250205173834-d1f6647211ac
 | 
			
		||||
	git.grassecon.net/grassrootseconomics/common v0.0.0-20250121134736-ba8cbbccea7d
 | 
			
		||||
	git.grassecon.net/grassrootseconomics/sarafu-api v0.0.0-20250123142805-2181388f5bf1
 | 
			
		||||
	git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.1.0.20250204132347-1eb0b1555244
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								go.sum
									
									
									
									
									
								
							@ -1,5 +1,5 @@
 | 
			
		||||
git.defalsify.org/vise.git v0.2.3-0.20250205092758-ea6bfa050eeb h1:WcNLKynPAXT/djmWJcdgiEsNO4HVSLYiaqclPpMCIK8=
 | 
			
		||||
git.defalsify.org/vise.git v0.2.3-0.20250205092758-ea6bfa050eeb/go.mod h1:jyBMe1qTYUz3mmuoC9JQ/TvFeW0vTanCUcPu3H8p4Ck=
 | 
			
		||||
git.defalsify.org/vise.git v0.2.3-0.20250205173834-d1f6647211ac h1:f/E0ZTclVfMEnD/3Alrzzbg+dOm138zGydV42jT0JPw=
 | 
			
		||||
git.defalsify.org/vise.git v0.2.3-0.20250205173834-d1f6647211ac/go.mod h1:jyBMe1qTYUz3mmuoC9JQ/TvFeW0vTanCUcPu3H8p4Ck=
 | 
			
		||||
git.grassecon.net/grassrootseconomics/common v0.0.0-20250121134736-ba8cbbccea7d h1:5mzLas+jxTUtusOKx4XvU+n2QvrV/mH17MnJRy46siQ=
 | 
			
		||||
git.grassecon.net/grassrootseconomics/common v0.0.0-20250121134736-ba8cbbccea7d/go.mod h1:wgQJZGIS6QuNLHqDhcsvehsbn5PvgV7aziRebMnJi60=
 | 
			
		||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.0.0-20250123142805-2181388f5bf1 h1:BJHfokTHzrw9QjQ+4s2HmSER0iBPuE7byW5oQC2zLIQ=
 | 
			
		||||
 | 
			
		||||
@ -8,12 +8,17 @@ import (
 | 
			
		||||
	"git.defalsify.org/vise.git/engine"
 | 
			
		||||
	"git.defalsify.org/vise.git/persist"
 | 
			
		||||
	"git.defalsify.org/vise.git/resource"
 | 
			
		||||
	"git.defalsify.org/vise.git/logging"
 | 
			
		||||
 | 
			
		||||
	"git.grassecon.net/grassrootseconomics/sarafu-api/remote"
 | 
			
		||||
	sarafu_engine "git.grassecon.net/grassrootseconomics/sarafu-vise/engine"
 | 
			
		||||
//	sarafu_engine "git.grassecon.net/grassrootseconomics/sarafu-vise/engine"
 | 
			
		||||
	"git.grassecon.net/grassrootseconomics/sarafu-vise/handlers/application"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	logg = logging.NewVanilla().WithDomain("sarafu-vise.engine")
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type HandlerService interface {
 | 
			
		||||
	GetHandler() (*application.MenuHandlers, error)
 | 
			
		||||
}
 | 
			
		||||
@ -126,8 +131,10 @@ func (ls *LocalHandlerService) GetHandler(accountService remote.AccountService)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (ls *LocalHandlerService) GetEngine(cfg engine.Config, rs resource.Resource, pr *persist.Persister) engine.Engine {
 | 
			
		||||
	se := sarafu_engine.NewSarafuEngine(cfg, rs)
 | 
			
		||||
	en := se.Engine.(*engine.DefaultEngine)
 | 
			
		||||
	//logg.Tracef("creating new engine")
 | 
			
		||||
	//se := sarafu_engine.NewSarafuEngine(cfg, rs)
 | 
			
		||||
	//en := se.Engine.(*engine.DefaultEngine)
 | 
			
		||||
	en := engine.NewEngine(cfg, rs)
 | 
			
		||||
	if ls.first != nil {
 | 
			
		||||
		en = en.WithFirst(ls.first)
 | 
			
		||||
	}
 | 
			
		||||
@ -135,6 +142,6 @@ func (ls *LocalHandlerService) GetEngine(cfg engine.Config, rs resource.Resource
 | 
			
		||||
	if cfg.EngineDebug {
 | 
			
		||||
		en = en.WithDebug(nil)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return se
 | 
			
		||||
	//return se
 | 
			
		||||
	return en
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user