|  | // Copyright 2016 The Go Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style | 
|  | // license that can be found in the LICENSE file. | 
|  |  | 
|  | package bio | 
|  |  | 
|  | import ( | 
|  | "io" | 
|  | "log" | 
|  | ) | 
|  |  | 
|  | // MustClose closes Closer c and calls log.Fatal if it returns a non-nil error. | 
|  | func MustClose(c io.Closer) { | 
|  | if err := c.Close(); err != nil { | 
|  | log.Fatal(err) | 
|  | } | 
|  | } | 
|  |  | 
|  | // MustWriter returns a Writer that wraps the provided Writer, | 
|  | // except that it calls log.Fatal instead of returning a non-nil error. | 
|  | func MustWriter(w io.Writer) io.Writer { | 
|  | return mustWriter{w} | 
|  | } | 
|  |  | 
|  | type mustWriter struct { | 
|  | w io.Writer | 
|  | } | 
|  |  | 
|  | func (w mustWriter) Write(b []byte) (int, error) { | 
|  | n, err := w.w.Write(b) | 
|  | if err != nil { | 
|  | log.Fatal(err) | 
|  | } | 
|  | return n, nil | 
|  | } | 
|  |  | 
|  | func (w mustWriter) WriteString(s string) (int, error) { | 
|  | n, err := io.WriteString(w.w, s) | 
|  | if err != nil { | 
|  | log.Fatal(err) | 
|  | } | 
|  | return n, nil | 
|  | } |