core.go 509B

123456789101112131415161718192021222324252627282930313233
  1. package core
  2. import "io"
  3. import "os"
  4. type ExitStatus uint16
  5. type Context struct {
  6. Stdout io.Writer
  7. Stderr io.Writer
  8. Stdin io.Reader
  9. }
  10. func MakeContext() Context {
  11. return Context{
  12. Stdout: os.Stdout,
  13. Stderr: os.Stderr,
  14. Stdin: os.Stdin,
  15. }
  16. }
  17. type ActionResult struct {
  18. Code ActionResultCode
  19. ExitStatus ExitStatus
  20. }
  21. type ActionResultCode uint8
  22. const (
  23. ActionResultCodeNoop ActionResultCode = iota
  24. ActionResultCodeBuiltinCommand
  25. ActionResultCodeExternalCommand
  26. ActionResultCodeExit
  27. )