#>cpp
#pragma once

#include <chrono>

#include "communication/rpc/messages.hpp"
#include "storage/common/types/types.hpp"
#include "storage/distributed/rpc/concurrent_id_mapper_rpc_messages.capnp.h"
#include "storage/distributed/rpc/serialization.hpp"
#include "transactions/commit_log.hpp"
#include "transactions/snapshot.hpp"
#include "transactions/type.hpp"
cpp<#

(lcp:namespace storage)

(lcp:capnp-namespace "storage")

(lcp:capnp-import 's "/storage/distributed/rpc/serialization.capnp")

(lcp:define-rpc label-id
    (:request ((member "std::string")))
  (:response ((member "Label" :capnp-type "S.Label"))))

(lcp:define-rpc id-label
    (:request ((member "Label" :capnp-type "S.Label")))
  (:response ((member "std::string"))))

(lcp:define-rpc edge-type-id
    (:request ((member "std::string")))
  (:response ((member "EdgeType" :capnp-type "S.EdgeType"))))

(lcp:define-rpc id-edge-type
    (:request ((member "EdgeType" :capnp-type "S.EdgeType")))
  (:response ((member "std::string"))))

(lcp:define-rpc property-id
    (:request ((member "std::string")))
  (:response ((member "Property" :capnp-type "S.Property"))))

(lcp:define-rpc id-property
    (:request ((member "Property" :capnp-type "S.Property")))
  (:response ((member "std::string"))))

(lcp:pop-namespace)
