fn from()

in reverie-ptrace/src/trace/mod.rs [432:488]


    fn from(wait: Wait) -> WaitStatus {
        match wait {
            Wait::Stopped(stopped, event) => {
                let pid = stopped.pid();
                match event {
                    Event::NewChild(op, _child) => match op {
                        ChildOp::Fork => WaitStatus::PtraceEvent(
                            pid.into(),
                            Signal::SIGTRAP,
                            libc::PTRACE_EVENT_FORK,
                        ),
                        ChildOp::Vfork => WaitStatus::PtraceEvent(
                            pid.into(),
                            Signal::SIGTRAP,
                            libc::PTRACE_EVENT_VFORK,
                        ),
                        ChildOp::Clone => WaitStatus::PtraceEvent(
                            pid.into(),
                            Signal::SIGTRAP,
                            libc::PTRACE_EVENT_CLONE,
                        ),
                    },
                    Event::Exec(_) => WaitStatus::PtraceEvent(
                        pid.into(),
                        Signal::SIGTRAP,
                        libc::PTRACE_EVENT_EXEC,
                    ),
                    Event::VforkDone => WaitStatus::PtraceEvent(
                        pid.into(),
                        Signal::SIGTRAP,
                        libc::PTRACE_EVENT_VFORK_DONE,
                    ),
                    Event::Exit => WaitStatus::PtraceEvent(
                        pid.into(),
                        Signal::SIGTRAP,
                        libc::PTRACE_EVENT_EXIT,
                    ),
                    Event::Seccomp => WaitStatus::PtraceEvent(
                        pid.into(),
                        Signal::SIGTRAP,
                        libc::PTRACE_EVENT_SECCOMP,
                    ),
                    Event::Stop => WaitStatus::PtraceEvent(
                        pid.into(),
                        Signal::SIGSTOP,
                        libc::PTRACE_EVENT_STOP,
                    ),
                    Event::Syscall => WaitStatus::PtraceSyscall(pid.into()),
                    Event::Signal(sig) => WaitStatus::Stopped(pid.into(), sig),
                }
            }
            Wait::Exited(pid, ExitStatus::Exited(code)) => WaitStatus::Exited(pid.into(), code),
            Wait::Exited(pid, ExitStatus::Signaled(signal, core_dump)) => {
                WaitStatus::Signaled(pid.into(), signal, core_dump)
            }
        }
    }