chan.go raw

   1  // Code generated by "go test -run=Generate -write=all"; DO NOT EDIT.
   2  // Source: ../../cmd/compile/internal/types2/chan.go
   3  
   4  // Copyright 2011 The Go Authors. All rights reserved.
   5  // Use of this source code is governed by a BSD-style
   6  // license that can be found in the LICENSE file.
   7  
   8  package types
   9  
  10  // A Chan represents a channel type.
  11  type Chan struct {
  12  	dir  ChanDir
  13  	elem Type
  14  }
  15  
  16  // A ChanDir value indicates a channel direction.
  17  type ChanDir int
  18  
  19  // The direction of a channel is indicated by one of these constants.
  20  const (
  21  	SendRecv ChanDir = iota
  22  	SendOnly
  23  	RecvOnly
  24  )
  25  
  26  // NewChan returns a new channel type for the given direction and element type.
  27  func NewChan(dir ChanDir, elem Type) *Chan {
  28  	return &Chan{dir: dir, elem: elem}
  29  }
  30  
  31  // Dir returns the direction of channel c.
  32  func (c *Chan) Dir() ChanDir { return c.dir }
  33  
  34  // Elem returns the element type of channel c.
  35  func (c *Chan) Elem() Type { return c.elem }
  36  
  37  func (c *Chan) Underlying() Type { return c }
  38  func (c *Chan) String() string   { return TypeString(c, nil) }
  39