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

// +build fuchsia

package mxerror

import (
	"syscall/zx"
)

// Status extracts an zx.Status from an error.
func Status(err error) zx.Status {
	if err == nil {
		return zx.ErrOk
	}
	switch err := err.(type) {
	case *zx.Error:
		return err.Status
	}
	return zx.ErrInternal
}
