| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | // Copyright 2019, OpenCensus Authors//// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at////     http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.package ochttpimport (	"io")// wrappedBody returns a wrapped version of the original// Body and only implements the same combination of additional// interfaces as the original.func wrappedBody(wrapper io.ReadCloser, body io.ReadCloser) io.ReadCloser {	var (		wr, i0 = body.(io.Writer)	)	switch {	case !i0:		return struct {			io.ReadCloser		}{wrapper}	case i0:		return struct {			io.ReadCloser			io.Writer		}{wrapper, wr}	default:		return struct {			io.ReadCloser		}{wrapper}	}}
 |