//go:build !windows package sboxrun import ( "context" "errors" ) // Status — duplicate of the Windows-side enum so call sites compile. type Status string const ( StatusIdle Status = "idle" StatusStarting Status = "starting" StatusActive Status = "active" StatusFailed Status = "failed" ) // Engine stub for non-Windows builds. type Engine struct{} // New returns an error on non-Windows: sing-box + wintun + WFP-based // per-process routing only make sense on Windows. func New(_ Config) (*Engine, error) { return nil, errors.New("sboxrun is Windows-only") } func (e *Engine) Start(_ context.Context) error { return errors.New("sboxrun is Windows-only") } func (e *Engine) Stop() error { return nil } func (e *Engine) Status() Status { return StatusIdle } func (e *Engine) LastError() error { return nil } func (e *Engine) LogPath() string { return "" } func (e *Engine) ConfigPath() string { return "" } // AssetPaths stub. type AssetPaths struct { SingBoxExe string WintunDLL string WorkDir string ConfigPath string LogPath string } // InstallAssets stub. func InstallAssets() (*AssetPaths, error) { return nil, errors.New("sboxrun is Windows-only") }