blob: 533a8aafccc42665900d459b6bbcc5428daacad2 [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//! Type-safe bindings for Zircon event objects.
use {AsHandleRef, Cookied, HandleBased, Handle, HandleRef, Status};
use {sys, ok};
/// An object representing a Zircon
/// [event object](
/// As essentially a subtype of `Handle`, it can be freely interconverted.
#[derive(Debug, Eq, PartialEq)]
pub struct Event(Handle);
impl Cookied for Event {}
impl Event {
/// Create an event object, an object which is signalable but nothing else. Wraps the
/// [zx_event_create](
/// syscall.
pub fn create() -> Result<Event, Status> {
let mut out = 0;
let opts = 0;
let status = unsafe { sys::zx_event_create(opts, &mut out) };
unsafe {