// Code generated by "go test -run=Generate -write=all"; DO NOT EDIT.

// Copyright 2011 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 types

// A Chan represents a channel type.
type Chan struct {
	dir  ChanDir
	elem Type
}

// A ChanDir value indicates a channel direction.
type ChanDir int

// The direction of a channel is indicated by one of these constants.
const (
	SendRecv ChanDir = iota
	SendOnly
	RecvOnly
)

// NewChan returns a new channel type for the given direction and element type.
func ( ChanDir,  Type) *Chan {
	return &Chan{dir: , elem: }
}

// Dir returns the direction of channel c.
func ( *Chan) () ChanDir { return .dir }

// Elem returns the element type of channel c.
func ( *Chan) () Type { return .elem }

func ( *Chan) () Type { return  }
func ( *Chan) () string   { return TypeString(, nil) }