// Copyright 2020 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.

// `go mod` ignores file names for the purpose of resolving
// dependencies, and zxwait doesn't build on not-Fuchsia.
//go:build fuchsia

package fidl

import (
	"syscall/zx"
	"syscall/zx/zxwait"
)

var handleClose = (*zx.Handle).Close
var handleReplace = zx.Handle.Replace

var newChannel = zx.NewChannel
var channelClose = (*zx.Channel).Close
var channelReadEtc = (*zx.Channel).ReadEtc
var channelWriteEtc = (*zx.Channel).WriteEtc

var withRetryContext = zxwait.WithRetryContext
