feat(rust): Custom sink
implementations
#11315
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
I want to build an asynchornous HTTP server that uses polars under the hood to manipulate some data frames. From my understanding the
sink_*
methods only allow writing to files but I want to be able to stream to an HTTP Response Body for example.Since libraries like
hyper
use aSender
(as in mpsc) to build a Body I though creating a way to write to any sender would be awesome.My implemetation
I exposed the
FileType
enum in order to now have to create differentsink_*
implementations, however this could be changed.I also created a
SinkSender
trait that implements all the methods necesarry to create custom sink implementations.Additionally, I created a
SendError
variant inPolarsError
.Example
In this example I placed a single
iris.csv
file, just for testing purposes.