https://github.com/jackc/ego
Experimental shorthand for Go error handling.
https://github.com/jackc/ego
Last synced: about 1 year ago
JSON representation
Experimental shorthand for Go error handling.
- Host: GitHub
- URL: https://github.com/jackc/ego
- Owner: jackc
- License: mit
- Created: 2017-11-11T19:38:27.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-11-11T19:39:09.000Z (over 8 years ago)
- Last Synced: 2025-01-26T07:11:47.489Z (over 1 year ago)
- Language: Go
- Size: 1000 Bytes
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ego
Ego is an experimental shorthand for Go error handling.
```
jack@happy:~/dev/go/src/github.com/jackc/ego$ cat example_in.go
package foo
import "io"
func bar3(w io.Writer) error {
_, err := w.Write([]byte("foo")) //; if err != nil { return err }
_, err = w.Write([]byte("bar")) //; if err != nil { return err }
_, err = w.Write([]byte("baz")) //; if err != nil { return err }
_, err = w.Write([]byte("quz")) //; if err != nil { return err }
return nil
}
jack@happy:~/dev/go/src/github.com/jackc/ego$ ruby ego_expand.rb < example_in.go | gofmt
package foo
import "io"
func bar3(w io.Writer) error {
_, err := w.Write([]byte("foo"))
if err != nil {
return err
}
_, err = w.Write([]byte("bar"))
if err != nil {
return err
}
_, err = w.Write([]byte("baz"))
if err != nil {
return err
}
_, err = w.Write([]byte("quz"))
if err != nil {
return err
}
return nil
}
```
```
jack@happy:~/dev/go/src/github.com/jackc/ego$ cat example_out.go
package foo
import "io"
func bar3(w io.Writer) error {
_, err := w.Write([]byte("foo"))
if err != nil {
return err
}
_, err = w.Write([]byte("bar"))
if err != nil {
return err
}
_, err = w.Write([]byte("baz"))
if err != nil {
return err
}
_, err = w.Write([]byte("quz"))
if err != nil {
return err
}
return nil
}
jack@happy:~/dev/go/src/github.com/jackc/ego$ ruby ego_contract.rb < example_out.go
package foo
import "io"
func bar3(w io.Writer) error {
_, err := w.Write([]byte("foo")) //; if err != nil { return err }
_, err = w.Write([]byte("bar")) //; if err != nil { return err }
_, err = w.Write([]byte("baz")) //; if err != nil { return err }
_, err = w.Write([]byte("quz")) //; if err != nil { return err }
return nil
}
```