private IdSpan GetGrainKey() { // TODO: intern var key = this.Key; return(IdSpan.Create($"{key.N0:X16}{key.N1:X16}{(key.HasKeyExt ? ("+" + key.KeyExt) : string.Empty)}")); }
/// <summary> /// Creates a new <see cref="GrainType"/> instance. /// </summary> public static GrainId Create(GrainType type, string key) => new GrainId(type, IdSpan.Create(key));
/// <summary> /// Creates an <see cref="IdSpan"/> representing a <see cref="Guid"/> key. /// </summary> public static IdSpan CreateGuidKey(Guid key, string keyExtension) => string.IsNullOrWhiteSpace(keyExtension) ? CreateGuidKey(key) : IdSpan.Create($"{key:N}+{keyExtension}");
/// <summary> /// Creates an <see cref="IdSpan"/> representing a <see cref="Guid"/> key. /// </summary> public static IdSpan CreateGuidKey(Guid key) => IdSpan.Create(key.ToString("N"));
/// <summary> /// Creates an <see cref="IdSpan"/> representing a <see cref="long"/> key. /// </summary> public static IdSpan CreateIntegerKey(long key, string keyExtension) => string.IsNullOrWhiteSpace(keyExtension) ? CreateIntegerKey(key) : IdSpan.Create($"{key:X}+{keyExtension}");
/// <summary> /// Creates an <see cref="IdSpan"/> representing a <see cref="long"/> key. /// </summary> public static IdSpan CreateIntegerKey(long key) => IdSpan.Create(key.ToString("X"));