code: func GiBToByte(n interface{}) int64 {
  	switch v := n.(type) {
  	case int:
  		return int64(v * int(math.Pow(1024, 3)))
  	case int32:
  		return int64(v * int32(math.Pow(1024, 3)))
  	case int64:
  		return v * int64(math.Pow(1024, 3))
  	}
  	panic(fmt.Errorf("non-integer type %T for value", n))
  }
docs: // GiBToByte returns n*1024^3.
  //
  // The output is returned as int64 - if another type is needed, it needs to be
  // cast. Remember that int32 overflows at around 2GiB and uint32 will overflow at 4GiB.