;;; struct.proto.lisp
;;;
;;; Generated by the protocol buffer compiler. DO NOT EDIT!

(cl:in-package #:common-lisp-user)

#+sbcl
(cl:progn
 (cl:eval-when (:compile-toplevel) (sb-ext:restrict-compiler-policy 'cl:debug 0 1))
 (cl:declaim (cl:optimize (sb-c:store-coverage-data 0))))

(cl:eval-when (:compile-toplevel :load-toplevel :execute)
  (cl:unless (cl:find-package "CL-PROTOBUFS.GOOGLE.PROTOBUF")
    (cl:defpackage "CL-PROTOBUFS.GOOGLE.PROTOBUF" (:use)
                   (:local-nicknames (#:pi #:cl-protobufs.implementation)))))

(cl:in-package "CL-PROTOBUFS.GOOGLE.PROTOBUF")

(cl:eval-when (:compile-toplevel :load-toplevel :execute)
(pi:define-schema 'struct
    :syntax :proto3

     :package "google.protobuf")
)


;;; Top-Level enums

(pi:define-enum null-value
    ()
  (:null-value :index 0))

;;; Top-Level messages

(pi:define-message struct
    ()
  ;; Nested messages
  ;; Fields
  (pi:define-map fields
     :key-type cl:string
     :value-type value
     :json-name "fields"
     :value-kind :message
     :index 1))

(pi:define-message value
    ()
  ;; Fields
  (pi:define-oneof kind ()
    (null-value
     :index 1 :type null-value :kind :enum :label (:optional) :json-name "nullValue" :default :null-value)
    (number-value
     :index 2 :type cl:double-float :kind :scalar :label (:optional) :json-name "numberValue")
    (string-value
     :index 3 :type cl:string :kind :scalar :label (:optional) :json-name "stringValue")
    (bool-value
     :index 4 :type cl:boolean :kind :scalar :label (:optional) :json-name "boolValue")
    (struct-value
     :index 5 :type struct :kind :message :label (:optional) :json-name "structValue")
    (list-value
     :index 6 :type list-value :kind :message :label (:optional) :json-name "listValue")))

(pi:define-message list-value
    ()
  ;; Fields
  (values
   :index 1 :type value :kind :message :label (:repeated :list) :json-name "values"))


(cl:export '(bool-value
             fields
             key
             list-value
             null-value
             null-value-int-to-keyword
             null-value-keyword-to-int
             number-value
             string-value
             struct
             struct-value
             struct.fields-entry
             value
             values))
