frunk
frunk copied to clipboard
Funktional generic type-level programming in Rust: HList, Coproduct, Generic, LabelledGeneric, Validated, Monoid and friends.
It might be nice with the next minor version to start a "nursery" project to hold "cutting-edge" or trial concepts. We could put things like `Transmogrifier ` and `PathTraverser` in...
A basic (working) example of transmogrification might look like: ``` use frunk_core::labelled::Transmogrifier; #[derive(Debug, frunk_derives::LabelledGeneric)] struct Foo { pub bar: Bar, } #[derive(Debug, frunk_derives::LabelledGeneric)] struct Foo2 { pub bar: Bar2, }...
I'm working with some code that filters specific coproducts out of an `mpsc` and running into problems. (Originally this was a huge enum of disjoint structs and I'm trying to...
https://github.com/lloydmeta/frunk/pull/124/files/7e4bc32eeac38288f9cedf60c5e5ab68c54e3f30#r220041930 Proposal > I wonder if we should add a macro: > ```rust > record! { // bikeshed > name: "joe", > age: 3, > is_admin: true, > } >...
This is a follow up issue to #93. I think we should get rid of special uninhabited types unless we have a particularly good reason to keep them. The standard...
https://github.com/lloydmeta/frunk/blob/bdb8b0fc1cb946a46b7c5817a8d865c75bb020b9/src/semigroup.rs#L90-L101 I'm honestly surprised to see that this doesn't do exponentation by squaring; to me, that has always been *the point* of having a function like `combine_n` N.B. The correctness...
There should be something to fold an iterator of monoids down to a single value, or to create the Monoids first and then fold them. `fold_map` is one of my...
Logging an issue from discussion on #89. The documentation of `Suffix` is entirely inadequate: > An index denoting that `Suffix` is just that. At bare minimum it needs to link...
I do a small bit of this in the coproduct `embed` PR, but I think there should be more: There should be one central piece of documentation (which other methods...
I discovered there was no `map` for coproducts when writing the docs for `CoprodEmbedder`, where I mention what happens if there are duplicate types in the input (which is something...