gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]