Differences From
Artifact [5ad659a834]:
1 1 -- vim: ft=terra
2 2 local m = {
3 - timepoint = uint64;
3 + timepoint = int64;
4 4 scope = lib.enum {
5 5 'public', 'private', 'local';
6 6 'personal', 'direct', 'circle';
7 7 };
8 8 notiftype = lib.enum {
9 9 'mention', 'like', 'rt', 'react'
10 10 };
................................................................................
62 62 struct m.actor {
63 63 id: uint64
64 64 nym: str
65 65 handle: str
66 66 origin: uint64
67 67 bio: str
68 68 avatar: str
69 - knownsince: int64
69 + knownsince: m.timepoint
70 70 rights: m.rights
71 71 key: lib.mem.ptr(uint8)
72 72
73 73 -- ephemera
74 74 xid: str
75 75 source: &m.source
76 76 }
................................................................................
79 79 posts: intptr
80 80 follows: intptr
81 81 followers: intptr
82 82 mutuals: intptr
83 83 }
84 84
85 85 struct m.range {
86 - time: bool
86 + mode: uint8 -- 0 == I->I, 1 == T->I, 2 == I->T, 3 == T->T
87 87 union {
88 88 from_time: m.timepoint
89 89 from_idx: uint64
90 90 }
91 91 union {
92 92 to_time: m.timepoint
93 93 to_idx: uint64
................................................................................
95 95 }
96 96
97 97 struct m.post {
98 98 id: uint64
99 99 author: uint64
100 100 subject: str
101 101 body: str
102 + acl: str
102 103 posted: m.timepoint
103 104 discovered: m.timepoint
104 - scope: m.scope.t
105 105 mentions: lib.mem.ptr(uint64)
106 106 circles: lib.mem.ptr(uint64) --only meaningful if scope is set to circle
107 107 convo: uint64
108 108 parent: uint64
109 -
109 +-- ephemera
110 + localpost: bool
110 111 source: &m.source
111 112 }
112 113
113 114 local cnf = terralib.memoize(function(ty,rty)
114 115 rty = rty or ty
115 116 return struct {
116 117 enum: {&opaque, uint64, rawstring} -> intptr
................................................................................
207 208 -- for determining session validity & caps
208 209 -- aid: uint64
209 210 -- origin: inet
210 211
211 212 actor_conf_str: cnf(rawstring, lib.mem.ptr(int8))
212 213 actor_conf_int: cnf(intptr, lib.stat(intptr))
213 214
214 - post_save: {&m.source, &m.post} -> bool
215 - post_create: {&m.source, &m.post} -> bool
215 + post_save: {&m.source, &m.post} -> {}
216 + post_create: {&m.source, &m.post} -> uint64
216 217 actor_post_fetch_uid: {&m.source, uint64, m.range} -> lib.mem.ptr(m.post)
217 218 convo_fetch_xid: {&m.source,rawstring} -> lib.mem.ptr(m.post)
218 219 convo_fetch_uid: {&m.source,uint64} -> lib.mem.ptr(m.post)
219 220
220 - actor_timeline_fetch_uid: {&m.source, uint64, m.range} -> lib.mem.ptr(m.post)
221 - instance_timeline_fetch: {&m.source, m.range} -> lib.mem.ptr(m.post)
221 + actor_timeline_fetch_uid: {&m.source, uint64, m.range} -> lib.mem.ptr(lib.mem.ptr(m.post))
222 + instance_timeline_fetch: {&m.source, m.range} -> lib.mem.ptr(lib.mem.ptr(m.post))
222 223 }
223 224
224 225 struct m.source {
225 226 backend: &m.backend
226 227 id: lib.mem.ptr(int8)
227 228 handle: &opaque
228 229 string: lib.mem.ptr(int8)