diff --git a/cpp/Platform.Interfaces/CLinks.h b/cpp/Platform.Interfaces/CLinks.h new file mode 100644 index 0000000..3d76aeb --- /dev/null +++ b/cpp/Platform.Interfaces/CLinks.h @@ -0,0 +1,21 @@ +#pragma once + +#include + +namespace Platform::Interfaces { + template + concept CLinks = requires { + typename TSelf::OptionsType; + typename TSelf::LinkAddressType; + typename TSelf::LinkType; + typename TSelf::WriteHandlerType; + typename TSelf::ReadHandlerType; + } && requires(TSelf self, const typename TSelf::LinkType& restriction, const typename TSelf::LinkType& substitution, const typename TSelf::ReadHandlerType& readHandler, const typename TSelf::WriteHandlerType& writeHandler) { + { self.Constants } -> std::convertible_to; + { self.Count(restriction) } -> std::same_as; + { self.Each(restriction, readHandler) } -> std::same_as; + { self.Create(restriction, writeHandler) } -> std::same_as; + { self.Update(restriction, substitution, writeHandler) } -> std::same_as; + { self.Delete(restriction, writeHandler) } -> std::same_as; + }; +} // namespace Platform::Interfaces \ No newline at end of file