Comments (6)
@atombender you're totally right actually. Thinking now, we should maybe have something like this. I'm reopening the issue, tough I might not have the time for now. I'm open to contributions, if anyone wants to contribute, please open a new issue and write your thoughts on how you want to implement it so it's easy to proceed.
from structs.
Hi @aacanakin
For now structs
doesn't support this feature. Maybe in the future we might support it. But there is already an excellent package that does what you want: https://github.com/mitchellh/mapstructure.
from structs.
@fatih: Would like to see this. It seems like a pretty glaring hole in this package's functionality. As it stands, you have to use structs
and mapstructure
together to serialize back/forth between maps, and in principle there's no guarantee that the serialization is even equivalent.
from structs.
I would like to extend this issue/feature request with partial assignment. For example:
type FullExample {
a string
b string
c string
}
type PartialExample {
a string
}
var := PartialExample{ a: "partial fill" };
var2 := FullExample{};
structs.Fill(&var2, var);
It would be awesome if var2 would be filled out with fields which match whatever is in var. I'm about to write this bunch of code to handle the split between database (full schema)/web forms (partial), and I'm sure there are other use cases as well. It's the second time that casting has failed me in recent few months.
from structs.
Feel free to use it for partial struct updates like in the example mentioned above. It's just something I hacked together quickly, not sure if it can be included as is. Feel free to give comments and I'm up for submitting a PR for this, if it's needed:
func updateStruct(dest interface{}, src interface{}) {
mDest := structs.Map(dest)
mSrc := structs.Map(src)
for key, val := range mSrc {
if _, ok := mDest[key]; ok {
structs.New(dest).Field(key).Set(val);
}
}
}
It basically includes the logic to assign all existing Map elements into a struct (dest). Depending on what structs.Map
does when it gets a map as a parameter - it might solve the issue of OP.
from structs.
Hi,
Unfortunately, I'm archiving this project and will no longer maintaining it. For more information, please read my blog post: Taking an indefinite sabbatical from my projects.
Thanks for the feedback and contribution.
from structs.
Related Issues (20)
- Custom Map function HOT 1
- Report fields of anonymous fields HOT 2
- stack overflow on structs.Map() HOT 1
- Add Addr method for Field HOT 1
- structs.Map return empty map HOT 3
- Range over nested slice of structs (using fields) HOT 3
- structs.Values() does not parse time.Time field HOT 2
- Why don't cache type information that has been reflected ? HOT 1
- Custom how nested struct marshals HOT 2
- Nested reflection? HOT 1
- How about add a api for convert map to structs? HOT 3
- Changing case of field name(key) in the generated map HOT 3
- Versions and tags HOT 4
- Proposal: Create a map and omit nil values HOT 3
- Nested structs HOT 1
- Get tag-value without omitempty HOT 2
- New() with options HOT 2
- I get empty return for this HOT 1
- panic when using both flatten and omitempty HOT 1
- Values that are structs lose their tags HOT 2
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 structs.