module grpc.stream.ClientWriter; import grpc.Status; import grpc.GrpcStream; class ClientWriter(W) { this(R)(GrpcStream stream , ref R r) { this.stream = stream; this.dele = (){ while(stream.read(r)){} }; } bool write(W w , bool option = false) { if(stream.end) return false; stream.write(w , option); return true; } bool writesDone() { if(stream.end) return false; stream.writesdone(); return true; } Status finish() { dele(); return stream.finish(); } GrpcStream stream; void delegate() dele; }