Commit graph

22 commits

Author SHA1 Message Date
1d01a1cbf9
docs(apb): some comments 2024-07-15 21:54:04 +02:00
2b4fb3bd62
fix(apb): actually link href is not guaranteed 2024-07-06 04:25:06 +02:00
141946444f
fix(apb): parsing links without href 2024-07-06 04:09:14 +02:00
bb79ca7728
feat: added notifications collections 2024-06-28 01:06:31 +02:00
d8feeec26f
test(apb): make sure .addressed() works 2024-06-06 16:22:47 +02:00
151eb606b6
fix(apb): Node::id behaves like Object::id 2024-06-01 01:24:20 +02:00
40e01fe83b
feat(apb)!: getters return field error
this way we clean upstream code from a lot of .ok_or(), and everything
that doesn't care about the error can go back to previous usage just
adding .ok()
2024-06-01 01:04:03 +02:00
b6a17184eb chore(apb): track todo &str 2024-05-31 15:56:41 +02:00
7e93bc6454
fix(apb): simpler macros, added into value, fix links
before array of links were silently discarded because macros relied on
into_iter().collect()... oops! technical debt, but should be ok now
2024-05-23 00:19:28 +02:00
756012ee69
feat(apb): add .flat() to access inner nodes 2024-05-20 01:56:32 +02:00
65aee2a27e
feat(apb): Node::Array is an array of nodes
this better represents AP arrays, because they could be mixed, and now
links are properly represented as links rather than "objects that are a
string"
2024-05-19 21:18:04 +02:00
6411923a0d
chore(apb): improved iterator impl for Node 2024-05-17 02:23:56 +02:00
88a6048dc2
fix(apb): id returns id of front for array node 2024-05-13 16:32:23 +02:00
aa84aef66e
fix(apb): remove node update
there's an undelying clone so this does nothing
2024-05-01 21:03:00 +02:00
71c3c54859
feat(apb): allow editing inner nodes
actually only if it implements Clone but whatever good enough for now
2024-05-01 17:46:54 +02:00
a3cf7a17e8
feat(apb): allow upcasting from object
basically now object.as_actor() or object.as_collection() returns an
option which is full with a self ref only if the type is correct, so
that we can assume flexible json behavior from anything implementing our
apb traits, and we don't need to rely anymore on knowing the underlying
type
also little import refactor
2024-04-29 20:01:39 +02:00
d50a762f63
fix(apb): is_empty === len()==0, new is_nothing
basically is_empty on an empty Node::Vec is true, but is_nothing on an
empty Node::Vec is false
2024-04-23 23:27:01 +02:00
ba07b2cb9d
fix(apb): correct node order when iterating
use a VecDeque under the hood to be able to pop_front()
2024-04-23 20:58:37 +02:00
96462648ce
fix(apb): dyn link is Sync and Send 2024-04-13 22:08:26 +02:00
9d3376a1f4
docs: document crate a little 2024-04-06 19:16:15 +02:00
101de0cc08
fix(apb): proper feature gating, dict->unstructured 2024-04-06 18:04:14 +02:00
520c8eff3a
feat: separated apb types into crate, reworked
no more "impl ..." hell, each trait has associated types so that we know
it's a "Self::Link" or a "Self::Actor", but in practice they can both be
a "serde_json::Value" and thus we can change its type. also Node::Array
is now a Vec<T> rather than Vec<Node<T>> because it makes more sense.
Node is Iterable and will yield zero (Empty|Link), one (Object) or many
(Array) Ts
2024-04-06 16:56:13 +02:00