Comments (5)
Second that. I managed to work out a draft but unfortunately the maintainer is very unresponsive. I may just end up forking this.
from safecopy.
Sounds great! I'd be very interested and can provide help if needed.
from safecopy.
Cool, help is always appreciated :)
You can check out the value-builder
branch in my fork. I managed to remove the cereal
dependency and replace it with a general value container that can be used as a base for different backends. My idea was to have a general safecopy
package, and then backend-specific packages like safecopy-cereal
, safecopy-aeson
and so on.
The put
part is unfinished but looks good so far, and I haven't gotten around to doing the get
part yet. I've also extended the TH code, so that the field names are also put into the value container, which will be useful for json, xml and other key-value based backends. The value container is just a list of Values
, and a Value
is just an ADT with different constructors for all primitive (and some other) types. I had tried a type-level based solution, but it got complicated fast, so I'm just sticking with the ADT thing for now.
So if you want, you can look around the source and see if there's something that you'd like to do. If you'd like to discuss something, we can do it in the issue tracker I guess.
from safecopy.
This would be neat. Especially if the extra backends can be put in separate packages as suggested.
from safecopy.
I realise this issue is rather old now, but in case anyone happens across it, I'm working on modular backends for acid-state
in acid-state/acid-state#96, including the possibility to leave out safecopy
altogether (or, in principle, to use a version of safecopy
with a different backend).
from safecopy.
Related Issues (20)
- Can't migrate when you have 2 consecutive fields of the same type and then one of them changes type HOT 2
- Loose time package constraint HOT 1
- Test suite failure with time-1.6.0.1 (duplicate instances) HOT 1
- Unnecessary constraint in generated SafeCopy instance HOT 3
- extended_extension comment is actually the extended_base comment
- s/unkown/unknown/ HOT 1
- Cannot build on ghc 8.2 HOT 1
- template-haskell constraint for ghc-8.4.1 HOT 2
- Better error messages
- errorTypeName method has sensible default implementation HOT 1
- incompatible with GHC 8.6 HOT 4
- safecopy added dependency on generic-data which is only GHC >= 8.0 HOT 6
- Fix compilation with template-haskell-2.15 (GHC-8.8) HOT 4
- Need GGetCopy and GPutCopy instances for V1 HOT 1
- Hello world is not complete HOT 2
- Need changes for GHC-9.0 HOT 3
- PolyKinds breaks phantom newtype deriving with non obvious error message HOT 2
- Support GHC 9.4
- deriveSafeCopy not working for mutual recursive data-types in GHC 9.2.4 HOT 3
- Support GHC 9.6 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from safecopy.