You're right. It's at least tricky, if not currently impossible. I take it back then.
I'd be happy with a `StandardStream` type (though I'd advocate, in the spirit of Swiftiness, to have it spelled out), with static `output` and `error`. This might be one of those rare cases where a reference type might be most appropriate, though, with perhaps a singleton design? On Mon, Jul 11, 2016 at 2:30 PM, Erica Sadun <[email protected]> wrote: > > On Jul 11, 2016, at 1:29 PM, Xiaodi Wu <[email protected]> wrote: > > Why not just OutputStream.stderr? > > > Can you do an extension like that with state for a protocol? > > -- E > > > > On Mon, Jul 11, 2016 at 14:25 Erica Sadun via swift-evolution < > [email protected]> wrote: > >> Just throwing this here. Unfortunately `Stream` is already taken (and >> tied to Foundation). >> >> public struct StdStream { >> public struct StderrStream: OutputStream { >> public func write(_ string: String) { fputs(string, Darwin.stderr) >> } >> } >> >> public struct StdoutStream: OutputStream { >> public func write(_ string: String) { fputs(string, Darwin.stdout) >> } >> } >> >> public static var err = StderrStream() >> public static var out = StdoutStream() >> } >> >> So in use, it would look something like >> >> str.write(to: &StdStream.out) >> str.write(to: &StdStream.err) >> >> I also considered DarwinStream (seemed too on the nose), UnixStream, >> Streamfd, BSDStream, etc. Didn't like any of them. >> >> -- E, have paintbrush will bikeshed >> > >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
