Home | History | Annotate | Download | only in bio
      1 // Copyright 2016 The Go Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 package bio
      6 
      7 import (
      8 	"io"
      9 	"log"
     10 )
     11 
     12 // MustClose closes Closer c and calls log.Fatal if it returns a non-nil error.
     13 func MustClose(c io.Closer) {
     14 	if err := c.Close(); err != nil {
     15 		log.Fatal(err)
     16 	}
     17 }
     18 
     19 // MustWriter returns a Writer that wraps the provided Writer,
     20 // except that it calls log.Fatal instead of returning a non-nil error.
     21 func MustWriter(w io.Writer) io.Writer {
     22 	return mustWriter{w}
     23 }
     24 
     25 type mustWriter struct {
     26 	w io.Writer
     27 }
     28 
     29 func (w mustWriter) Write(b []byte) (int, error) {
     30 	n, err := w.w.Write(b)
     31 	if err != nil {
     32 		log.Fatal(err)
     33 	}
     34 	return n, nil
     35 }
     36 
     37 func (w mustWriter) WriteString(s string) (int, error) {
     38 	n, err := io.WriteString(w.w, s)
     39 	if err != nil {
     40 		log.Fatal(err)
     41 	}
     42 	return n, nil
     43 }
     44