about summary refs log tree commit diff
path: root/xapian
diff options
context:
space:
mode:
authorArun Isaac2024-05-03 22:48:26 +0100
committerArun Isaac2024-05-04 00:07:08 +0100
commitec7e7a9eabe210e1a75eeeb68f45dc1d6e5a7731 (patch)
treee27c3fdae9f82818c037b0e9f0079b3a55ceb85b /xapian
parent55f218b7f8db67fff559df94faaa55abb528939a (diff)
downloadguile-xapian-ec7e7a9eabe210e1a75eeeb68f45dc1d6e5a7731.tar.gz
guile-xapian-ec7e7a9eabe210e1a75eeeb68f45dc1d6e5a7731.tar.lz
guile-xapian-ec7e7a9eabe210e1a75eeeb68f45dc1d6e5a7731.zip
xapian: Wrap FieldProcessor.
* xapian.i.in (GuileXapianFieldProcessorWrapper): New class.
* xapian/xapian.scm (field-processor): New public function.
Diffstat (limited to 'xapian')
-rw-r--r--xapian/xapian.scm9
1 files changed, 8 insertions, 1 deletions
diff --git a/xapian/xapian.scm b/xapian/xapian.scm
index 80b4b9b..8b8b952 100644
--- a/xapian/xapian.scm
+++ b/xapian/xapian.scm
@@ -1,5 +1,5 @@
 ;;; guile-xapian --- Guile bindings for Xapian
-;;; Copyright © 2020, 2022 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2020, 2022, 2024 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2021 Bob131 <bob@bob131.so>
 ;;;
 ;;; This file is part of guile-xapian.
@@ -53,6 +53,7 @@
             query-and
             query-or
             query-filter
+            field-processor
             enquire
             enquire-mset
             mset-item-docid
@@ -234,6 +235,12 @@ In a non-weighted context, @code{query-filter} and @code{query-and}
 are equivalent."
   (apply query-combine (Query-OP-FILTER) (Query-MatchAll) queries))
 
+(define (field-processor proc)
+  "Return a @code{FieldProcessor} object that calls
+@var{proc} to process its field. @var{proc} is a procedure that, given
+a string, must return a @code{Query} object."
+  (new-GuileXapianFieldProcessorWrapper proc))
+
 (define (get-flag flag-thunk value)
   (if value (flag-thunk) 0))