internal/langserver/session/errors.go (41 lines of code) (raw):

package session import ( "fmt" "github.com/creachadair/jrpc2/code" ) const SessionNotInitialized code.Code = -32002 type unexpectedSessionState struct { ExpectedState sessionState CurrentState sessionState } func (e *unexpectedSessionState) Error() string { return fmt.Sprintf("session is not %s, current state: %s", e.ExpectedState, e.CurrentState) } func SessionNotInitializedErr(state sessionState) error { uss := &unexpectedSessionState{ ExpectedState: stateInitializedConfirmed, CurrentState: state, } if state < stateInitializedConfirmed { return fmt.Errorf("%w: %s", SessionNotInitialized.Err(), uss) } if state == stateDown { return fmt.Errorf("%w: %s", code.InvalidRequest.Err(), uss) } return uss } func SessionAlreadyInitializedErr(reqID string) error { return fmt.Errorf("%w: session was already initialized via request ID %s", code.SystemError.Err(), reqID) } func SessionAlreadyDownErr(reqID string) error { return fmt.Errorf("%w: session was already shut down via request %s", code.InvalidRequest.Err(), reqID) } type InvalidURIErr struct { URI string } func (e *InvalidURIErr) Error() string { return fmt.Sprintf("invalid URI: %s", e.URI) }