[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet-scheme] 01/12: bv-slice: Define read-only and write-only variant
From: |
gnunet |
Subject: |
[gnunet-scheme] 01/12: bv-slice: Define read-only and write-only variants of bv-slice/read-write. |
Date: |
Mon, 12 Sep 2022 18:49:01 +0200 |
This is an automated email from the git hooks/post-receive script.
maxime-devos pushed a commit to branch master
in repository gnunet-scheme.
commit c647c4d3ce6fbfcea286c965886347d86b724862
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Sat Sep 10 23:11:49 2022 +0200
bv-slice: Define read-only and write-only variants of bv-slice/read-write.
Documentation, tests and uses will come later.
* gnu/gnunet/utils/bv-slice.scm (make-bv-slicer): New procedure.
(bv-slice/read-write): Use it.
(bv-slice/read-only,bv-slice/write-only): New procedures.
---
gnu/gnunet/utils/bv-slice.scm | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/gnu/gnunet/utils/bv-slice.scm b/gnu/gnunet/utils/bv-slice.scm
index d7418f8..8676c52 100644
--- a/gnu/gnunet/utils/bv-slice.scm
+++ b/gnu/gnunet/utils/bv-slice.scm
@@ -29,7 +29,7 @@
slice-offset
slice-length
slice-slice
- bv-slice/read-write
+ bv-slice/read-write bv-slice/read-only bv-slice/write-only
make-slice/read-write
slice-readable?
slice-writable?
@@ -204,14 +204,17 @@ name for the slice, @var{permitted} the capabilities of
the slice and
((obj offset length)
(slice-slice (process-first-arg obj) offset length))))
- (define bv-slice/read-write
+ (define (make-bv-slicer capability-bits)
(slice-as-well
(lambda (bv)
- "Construct a read-write bytevector slice. Mutations will change
-the bytevector in place."
+ ;; Construct a bytevector slice with @var{capabilities}.
+ ;; Mutations will change the bytevector in place.
(assert (bytevector? bv))
- (%make-slice bv 0 (bytevector-length bv)
- (bitwise-ior CAP_READ CAP_WRITE)))))
+ (%make-slice bv 0 (bytevector-length bv) capability-bits))))
+
+ (define bv-slice/read-only (make-bv-slicer CAP_READ))
+ (define bv-slice/write-only (make-bv-slicer CAP_WRITE))
+ (define bv-slice/read-write (make-bv-slicer (bitwise-ior CAP_READ
CAP_WRITE)))
(define (make-slice/read-write length)
"Make a fresh, zero-initialised, read-write slice"
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [gnunet-scheme] branch master updated (58b0a65 -> c0c1dff), gnunet, 2022/09/12
- [gnunet-scheme] 12/12: tests/distributed-hash-table: Skip a to-be-investigated hanging test., gnunet, 2022/09/12
- [gnunet-scheme] 07/12: doc/bytevector-slices: Document types supported by bytevector slices., gnunet, 2022/09/12
- [gnunet-scheme] 02/12: doc: Document how to construct bytevector slices., gnunet, 2022/09/12
- [gnunet-scheme] 05/12: bv-slice: Add slice-slice to the index., gnunet, 2022/09/12
- [gnunet-scheme] 01/12: bv-slice: Define read-only and write-only variants of bv-slice/read-write.,
gnunet <=
- [gnunet-scheme] 03/12: bv-slice: Use new bv-slice/read-only bv-slice/write-only where appropriate., gnunet, 2022/09/12
- [gnunet-scheme] 06/12: doc/bytevector-slices: Document the predicates., gnunet, 2022/09/12
- [gnunet-scheme] 11/12: Merge branch 'bytevector-slices', gnunet, 2022/09/12
- [gnunet-scheme] 04/12: bv-slice: Test capabilities of bv-slice/..., gnunet, 2022/09/12
- [gnunet-scheme] 08/12: doc/bytevector-slices: Document slice-X-ref and slice-X-set!., gnunet, 2022/09/12
- [gnunet-scheme] 10/12: NEWS: Mention the new bytevector slices documentation., gnunet, 2022/09/12
- [gnunet-scheme] 09/12: doc/bytevector-slices: Document slice-X-ref and slice-X-set! more., gnunet, 2022/09/12