public static unsafe bool GetKnownProtoScheme(this Span <byte> span, out ProtoScheme knownScheme) { fixed(byte *data = span) { return(GetKnownProtoScheme(data, span.Length, out knownScheme)); } }
public static string SchemeToString(ProtoScheme scheme) { switch (scheme) { case ProtoScheme.Proto: return(ProtoUriScheme); case ProtoScheme.Protos: return(ProtosUriScheme); default: return(null); } }
private static unsafe bool GetKnownProtoScheme(byte *location, int length, out ProtoScheme knownScheme) { if (length >= sizeof(ulong)) { var scheme = *(ulong *)location; if ((scheme & _mask7Chars) == _httpSchemeLong) { knownScheme = ProtoScheme.Proto; return(true); } if (scheme == _httpsSchemeLong) { knownScheme = ProtoScheme.Protos; return(true); } } knownScheme = ProtoScheme.Unknown; return(false); }