git.fiddlerwoaroof.com
Raw Blame History
(defpackage :fwoar.condorcet
  (:use :cl )
  (:export ))
(in-package :fwoar.condorcet)

(defmacro define-data-class (name (&rest super-classes) &body slots)
  `(defclass ,name ,super-classes
     ,(mapcar
       (lambda (slot-name)
         `(,slot-name :initarg ,(alexandria:make-keyword slot-name) :reader ,slot-name))
       slots)))

(define-data-class ballot ()
  voter-name confirmation rankings)

(define-data-class ranking ()
  rank candidates)

(define-data-class secret-ballot ()
  confirmation rankings)

(define-data-class tally-election-request ()
  election candidates eligible-voters ballots)

(define-data-class tally-election-response ()
  election candidates voted did-not-vote rankings ballots preference-matrix strongest-path-matrix)

(define-data-class tally-election-response ()
  election candidates voted did-not-vote rankings ballots)