Download src/FindAJev.Bench/CedarNative.cs from Daankular/FindAJev: direct link, hf CLI and curl.
- Browser
- Download file 3.58 kB
-
https://huggingface.co/spaces/Daankular/FindAJev/resolve/main/src/FindAJev.Bench/CedarNative.cs
- Command line
-
hf download hf://spaces/Daankular/FindAJev/src/FindAJev.Bench/CedarNative.cs
-
curl -L -o CedarNative.cs https://huggingface.co/spaces/Daankular/FindAJev/resolve/main/src/FindAJev.Bench/CedarNative.cs
3.58 kB
| using System.Runtime.InteropServices; | |
| using System.Text.Json.Nodes; | |
| namespace FindAJev.Bench; | |
| /// <summary> | |
| /// Raw access to every function the CedarDotNet FFI library exports, with JSON in / JSON out. The conformance checks use this | |
| /// instead of the managed wrapper so they can exercise inputs the typed models cannot express (extension values, malformed | |
| /// requests, partial requests) exactly as the native library sees them. | |
| /// </summary> | |
| public static class CedarNative | |
| { | |
| const string Lib = "cedar_dotnet_ffi"; | |
| [] static extern IntPtr IsAuthorized([MarshalAs(UnmanagedType.LPUTF8Str)] string s); | |
| [] static extern IntPtr IsAuthorizedPartial([MarshalAs(UnmanagedType.LPUTF8Str)] string s); | |
| [] static extern IntPtr Validate([MarshalAs(UnmanagedType.LPUTF8Str)] string s); | |
| [] static extern IntPtr CheckParsePolicySet([MarshalAs(UnmanagedType.LPUTF8Str)] string s); | |
| [] static extern IntPtr CheckParseSchema([MarshalAs(UnmanagedType.LPUTF8Str)] string s); | |
| [] static extern IntPtr CheckParseEntities([MarshalAs(UnmanagedType.LPUTF8Str)] string s); | |
| [] static extern IntPtr CheckParseContext([MarshalAs(UnmanagedType.LPUTF8Str)] string s); | |
| [] static extern IntPtr Format([MarshalAs(UnmanagedType.LPUTF8Str)] string s); | |
| [] static extern IntPtr TextToJson([MarshalAs(UnmanagedType.LPUTF8Str)] string s); | |
| [] static extern IntPtr JsonToText([MarshalAs(UnmanagedType.LPUTF8Str)] string s); | |
| [] static extern IntPtr TextToParts([MarshalAs(UnmanagedType.LPUTF8Str)] string s); | |
| [] static extern IntPtr LangVersion(); | |
| [] static extern IntPtr SdkVersion(); | |
| [] static extern void Free(IntPtr p); | |
| static string Take(IntPtr p) | |
| { | |
| try { return Marshal.PtrToStringUTF8(p) ?? ""; } finally { Free(p); } | |
| } | |
| public static string Authorize(string json) => Take(IsAuthorized(json)); | |
| public static string AuthorizePartial(string json) => Take(IsAuthorizedPartial(json)); | |
| public static string ValidatePolicies(string json) => Take(Validate(json)); | |
| public static string ParsePolicySet(string json) => Take(CheckParsePolicySet(json)); | |
| public static string ParseSchema(string json) => Take(CheckParseSchema(json)); | |
| public static string ParseEntities(string json) => Take(CheckParseEntities(json)); | |
| public static string ParseContext(string json) => Take(CheckParseContext(json)); | |
| public static string FormatPolicy(string json) => Take(Format(json)); | |
| public static string PolicyTextToJson(string text) => Take(TextToJson(text)); | |
| public static string PolicyJsonToText(string json) => Take(JsonToText(json)); | |
| public static string PolicySetParts(string text) => Take(TextToParts(text)); | |
| public static string SdkVersionString() => Take(SdkVersion()); | |
| public static string LangVersionString() => Take(LangVersion()); | |
| public static JsonObject Obj(string json) => JsonNode.Parse(json)!.AsObject(); | |
| } | |