package v1 import ( "io" remotev1 "code.icb4dc0.de/buildr/api/generated/remote/v1" ) var _ io.Writer = (*taskOutputWriter)(nil) func newTaskOutputWriter(source remotev1.TaskOutputSource, sender StreamSender[*remotev1.ExecutionServerMessage]) taskOutputWriter { return taskOutputWriter{ source: source, sender: sender, } } type taskOutputWriter struct { sender StreamSender[*remotev1.ExecutionServerMessage] source remotev1.TaskOutputSource } func (t taskOutputWriter) Write(p []byte) (n int, err error) { err = t.sender.Send(&remotev1.ExecutionServerMessage{ Envelope: &remotev1.ExecutionServerMessage_TaskOutput{ TaskOutput: &remotev1.TaskOutput{ Source: t.source, Payload: p, }, }, }) if err != nil { return 0, err } return len(p), nil }