https://github.com/jackc/ego
  
  
    Experimental shorthand for Go error handling. 
    https://github.com/jackc/ego
  
        Last synced: 8 months 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 (almost 8 years ago)
 - Default Branch: master
 - Last Pushed: 2017-11-11T19:39:09.000Z (almost 8 years ago)
 - Last Synced: 2025-01-26T07:11:47.489Z (9 months 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
}
```