Comments (4)
I agree for the most part however:
- It breaks backwards compatibility
- The
RecordAccess
type provides access to more than just the record. - It's yet another reflect call, although that's not too big of a deal IMO
I think it's worth doing. What I'm tentatively picturing is to change the MatchFunc
signature to:
MatchFunc(func(value interface{}) (bool, error)
If value
is of type RecordAccess, work just like it does now. If value
has type compatibility with the entire record, return the record. If it has type compatibility with the currently selected field, return the field.
So you could do something like this:
bolthold.Where("Name").MatchFunc(func(val string) (bool, error) {
return val != "one" && val != "two" && val != "three"
})
or
bolthold.Where("Name").MatchFunc(func(val person) (bool, error) {
return val.Name != "one" && val.Name != "two" && val.Name != "three"
})
from bolthold.
The changes discussed above have been moved into master.
from bolthold.
maybe you dont break api and you add a new handler ?
from bolthold.
The problem with adding a new handler is that it makes the API more complicated, especially for people coming to it for the first time. What would you name the new handler that made it clear that this new MatchFunc handler also matches on the passed in function, but in a slightly different way than the other handler that matches on a function.
I'd prefer to just extend the behavior of the existing handler without changing the current behavior.
from bolthold.
Related Issues (20)
- Is there a way to iterate from end of bucket using forEach HOT 10
- Query Builder approach HOT 6
- 如何查询某个bucket的全部数据 HOT 1
- his error occurs when fetching data from a specific bucket HOT 8
- readme.md: boltholdIndex, boltHoldIndex HOT 4
- Upsert with custom Storer delivers inconsistent value type to index function HOT 2
- Multiple calls to Delete for non-existing key result in EOF error instead of ErrNotFound HOT 2
- Add method to wrap existing bolt instance HOT 1
- Q: limit query without conditions HOT 2
- Unique index
- Can't sort by PK HOT 1
- Add support for batch inserts HOT 2
- Distinct constraint HOT 2
- Get vs FindOne HOT 9
- Web UI
- Aggregate query on nested struct HOT 2
- Constraint pairs HOT 1
- Slow write speeds HOT 7
- Initialise read only store HOT 2
- foreach can't use, when the key's type is uint64 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 bolthold.