stario/signal_error.go
starainrt c8facb5a03
stario: 提升 Go 1.20 基线与交互/队列稳定性
- 提升 go.mod 基线到 Go 1.20,并补齐对应测试
  - 修正 Passwd / PasswdResponseSignal 语义,Ctrl+C 默认退出当前流程
  - 优化 raw terminal redraw、Restore 与 StopUntil 的边界行为
  - 新增 StarPipe、FrameReader/FrameWriter、ReadFullContext/WriteFullContext/CopyContext、IsTerminal/ReadPasswordContext
  - 收口 StarQueue / StarBuffer 语义,删除 EndWrite,统一 Close / Abort 行为
  - 补齐 signal、timeout、queue、terminal、pipe、buffer 的回归测试与 race 覆盖
2026-04-15 14:35:19 +08:00

45 lines
766 B
Go

package stario
import "errors"
var (
ErrSignalInterrupt = errors.New("interrupt")
ErrSignalStop = errors.New("stop")
ErrSignalQuit = errors.New("quit")
)
type inputSignalError struct {
msg string
cause error
}
func (e *inputSignalError) Error() string {
return e.msg
}
func (e *inputSignalError) Unwrap() error {
return e.cause
}
func signalErrorForType(sigtype rune) error {
switch sigtype {
case 0x03:
return &inputSignalError{
msg: "SIGNAL SIGINT RECIVED",
cause: ErrSignalInterrupt,
}
case 0x1a:
return &inputSignalError{
msg: "SIGNAL SIGSTOP RECIVED",
cause: ErrSignalStop,
}
case 0x1c:
return &inputSignalError{
msg: "SIGNAL SIGQUIT RECIVED",
cause: ErrSignalQuit,
}
default:
return nil
}
}