
// header "sys" as sys

// fn pipe() Pipe {
//     return Pipe.new()
// }

// class Pipe {
//     fd_read: i32 (0)
//     fd_write: i32 (0)

//     static fn new() SELF {
//         let p = SELF{}
//         let e = sys:pipe(@ref(p.fd_read))
//         if e == -1 : panic("Failed to create pipe")
//         return p
//     }

//     fn gc_free() {
//         close(this.fd_read)
//         close(this.fd_write)
//     }
// }

