commit 128f0d6029063d09dc9ad252daaf4378b3914177
parent 6644dba0e1cd89b1471c06a716830f8a6d78274d
Author: Jan Pobrislo <ccx@te2000.cz>
Date: Tue, 29 Apr 2025 14:55:29 +0000
simplify header definition
Diffstat:
2 files changed, 36 insertions(+), 35 deletions(-)
diff --git a/doc/miniroon_spec.html b/doc/miniroon_spec.html
@@ -151,34 +151,35 @@ in which case it's `0`.</td></tr>
<tr><td>141</td><td><code>miniroon_encoding(Miniroon, Bytes) :-</code></td></tr>
<tr><td>142</td><td><code> phrase(netstring_call_dcg(miniroon_content(Miniroon)), Bytes).</code></td></tr>
<tr><td>143</td><td><code></code></td><td rowspan="4"></td></tr>
-<tr><td>144</td><td><code>miniroon_v0_action(revoke, `revoke`).</code></td></tr>
-<tr><td>145</td><td><code>miniroon_v0_action(invoke, `invoke`).</code></td></tr>
-<tr><td>146</td><td><code>miniroon_v0_action(invoke_once, `invoke-once`).</code></td></tr>
-<tr><td>147</td><td><code></code></td><td rowspan="6"></td></tr>
+<tr><td>144</td><td><code>miniroon_v0_action(revoke) --> `revoke`.</code></td></tr>
+<tr><td>145</td><td><code>miniroon_v0_action(invoke) --> `invoke`.</code></td></tr>
+<tr><td>146</td><td><code>miniroon_v0_action(invoke_once) --> `invoke-once`.</code></td></tr>
+<tr><td>147</td><td><code></code></td><td rowspan="7"></td></tr>
<tr><td>148</td><td><code>miniroon_header(header_v0(Identifier, Action)) --></code></td></tr>
<tr><td>149</td><td><code> netstring_bytes(`capv0`),</code></td></tr>
<tr><td>150</td><td><code> netstring_bytes(Identifier),</code></td></tr>
-<tr><td>151</td><td><code> { ~ miniroon_v0_action(Action, ActionBytes) },</code></td></tr>
-<tr><td>152</td><td><code> netstring_bytes(ActionBytes).</code></td></tr>
-<tr><td>153</td><td><code></code></td><td rowspan="16"></td></tr>
-<tr><td>154</td><td><code>miniroon_v0_caveat(caveat_v0_env_is(VarName, Value)) --></code></td></tr>
-<tr><td>155</td><td><code> netstring_bytes(`env-is`),</code></td></tr>
-<tr><td>156</td><td><code> netstring_string(VarName),</code></td></tr>
-<tr><td>157</td><td><code> netstring_string(Value).</code></td></tr>
-<tr><td>158</td><td><code>miniroon_v0_caveat(caveat_v0_env_absent(VarName)) --></code></td></tr>
-<tr><td>159</td><td><code> netstring_bytes(`env-absent`),</code></td></tr>
-<tr><td>160</td><td><code> netstring_string(VarName).</code></td></tr>
-<tr><td>161</td><td><code>miniroon_v0_caveat(caveat_v0_env_regmatch(VarName, Pattern)) --></code></td></tr>
-<tr><td>162</td><td><code> netstring_bytes(`env-re`),</code></td></tr>
-<tr><td>163</td><td><code> netstring_string(VarName),</code></td></tr>
-<tr><td>164</td><td><code> netstring_string(Pattern).</code></td></tr>
-<tr><td>165</td><td><code>miniroon_v0_caveat(caveat_v0_env_glob(VarName, Pattern)) --></code></td></tr>
-<tr><td>166</td><td><code> netstring_bytes(`env-glob`),</code></td></tr>
-<tr><td>167</td><td><code> netstring_string(VarName),</code></td></tr>
-<tr><td>168</td><td><code> netstring_string(Pattern).</code></td></tr>
-<tr><td>169</td><td><code></code></td><td rowspan="5"></td></tr>
-<tr><td>170</td><td><code>miniroon_v0_caveat_list([]) --> {true}.</code></td></tr>
-<tr><td>171</td><td><code>miniroon_v0_caveat_list([Caveat|Rest]) --></code></td></tr>
-<tr><td>172</td><td><code> netstring_call_dcg(miniroon_v0_caveat(Caveat)),</code></td></tr>
-<tr><td>173</td><td><code> miniroon_v0_caveat_list(Rest).</code></td></tr>
+<tr><td>151</td><td><code> netstring_call_dcg(miniroon_v0_action(Action)).</code></td></tr>
+<tr><td>152</td><td><code>% { ~ miniroon_v0_action(Action, ActionBytes) },</code></td></tr>
+<tr><td>153</td><td><code>% netstring_bytes(ActionBytes).</code></td></tr>
+<tr><td>154</td><td><code></code></td><td rowspan="16"></td></tr>
+<tr><td>155</td><td><code>miniroon_v0_caveat(caveat_v0_env_is(VarName, Value)) --></code></td></tr>
+<tr><td>156</td><td><code> netstring_bytes(`env-is`),</code></td></tr>
+<tr><td>157</td><td><code> netstring_string(VarName),</code></td></tr>
+<tr><td>158</td><td><code> netstring_string(Value).</code></td></tr>
+<tr><td>159</td><td><code>miniroon_v0_caveat(caveat_v0_env_absent(VarName)) --></code></td></tr>
+<tr><td>160</td><td><code> netstring_bytes(`env-absent`),</code></td></tr>
+<tr><td>161</td><td><code> netstring_string(VarName).</code></td></tr>
+<tr><td>162</td><td><code>miniroon_v0_caveat(caveat_v0_env_regmatch(VarName, Pattern)) --></code></td></tr>
+<tr><td>163</td><td><code> netstring_bytes(`env-re`),</code></td></tr>
+<tr><td>164</td><td><code> netstring_string(VarName),</code></td></tr>
+<tr><td>165</td><td><code> netstring_string(Pattern).</code></td></tr>
+<tr><td>166</td><td><code>miniroon_v0_caveat(caveat_v0_env_glob(VarName, Pattern)) --></code></td></tr>
+<tr><td>167</td><td><code> netstring_bytes(`env-glob`),</code></td></tr>
+<tr><td>168</td><td><code> netstring_string(VarName),</code></td></tr>
+<tr><td>169</td><td><code> netstring_string(Pattern).</code></td></tr>
+<tr><td>170</td><td><code></code></td><td rowspan="5"></td></tr>
+<tr><td>171</td><td><code>miniroon_v0_caveat_list([]) --> {true}.</code></td></tr>
+<tr><td>172</td><td><code>miniroon_v0_caveat_list([Caveat|Rest]) --></code></td></tr>
+<tr><td>173</td><td><code> netstring_call_dcg(miniroon_v0_caveat(Caveat)),</code></td></tr>
+<tr><td>174</td><td><code> miniroon_v0_caveat_list(Rest).</code></td></tr>
</table></body></html>
diff --git a/doc/miniroon_spec.pl b/doc/miniroon_spec.pl
@@ -131,6 +131,10 @@ netstring_maplist_dcg(DCGBody, [Item|Rest]) -->
%%% Miniroon definitions:
+miniroon_encoding(Miniroon, Bytes) :-
+ Bytes will_be sequence_of_bytes,
+ phrase(netstring_call_dcg(miniroon_content(Miniroon)), Bytes).
+
% Miniroon is a netstring whose payload is concatenation of three parts: header, caveat list and signature.
miniroon_content(miniroon_v0(Identifier, Action, Caveats, Signature)) -->
netstring_call_dcg(miniroon_header(header_v0(Identifier, Action))),
@@ -138,18 +142,14 @@ miniroon_content(miniroon_v0(Identifier, Action, Caveats, Signature)) -->
netstring_call_dcg(netstring_maplist_dcg(miniroon_v0_caveat, Caveats)),
netstring_bytes(Signature).
-miniroon_encoding(Miniroon, Bytes) :-
- phrase(netstring_call_dcg(miniroon_content(Miniroon)), Bytes).
-
-miniroon_v0_action(revoke, `revoke`).
-miniroon_v0_action(invoke, `invoke`).
-miniroon_v0_action(invoke_once, `invoke-once`).
+miniroon_v0_action(revoke) --> `revoke`.
+miniroon_v0_action(invoke) --> `invoke`.
+miniroon_v0_action(invoke_once) --> `invoke-once`.
miniroon_header(header_v0(Identifier, Action)) -->
netstring_bytes(`capv0`),
netstring_bytes(Identifier),
- { ~ miniroon_v0_action(Action, ActionBytes) },
- netstring_bytes(ActionBytes).
+ netstring_call_dcg(miniroon_v0_action(Action)).
miniroon_v0_caveat(caveat_v0_env_is(VarName, Value)) -->
netstring_bytes(`env-is`),