32 lines
911 B
C#
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();
|
|
}
|
|
}
|
|
}
|