Files
Beam/Beam/SourceLink.cs
T

32 lines
911 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Beam {
public readonly struct SourceLink(string link) {
private readonly string Link_ { get; } = link;
public readonly Uri Link => new(Link_);
public bool HasValue => !string.IsNullOrWhiteSpace(Link_);
public static SourceLink InvalidLink { get; } = new("invalid://link");
public static bool operator ==(SourceLink lhs, SourceLink rhs) {
return lhs.Link == rhs.Link;
}
public static bool operator !=(SourceLink lhs, SourceLink rhs) {
return lhs.Link != rhs.Link;
}
public override bool Equals(object? obj) {
return GetHashCode() == obj?.GetHashCode();
}
public override int GetHashCode() {
return Link.GetHashCode();
}
}
}