///|
pub type NonEmptyString String derive(Eq, Compare)
///|
pub impl FromString for NonEmptyString with from_string(str) {
if DEBUGGER {
guard str.length() > 0 else { abort("input is an empty string") }
}
NonEmptyString(str)
}
///|
pub fn NonEmptyString::of(str : String) -> NonEmptyString {
NonEmptyString::from_string(str)
}
///|
pub impl Show for NonEmptyString with output(self, output) {
self.inner().output(output)
}
///|
pub impl Show for NonEmptyString with to_string(self) {
self.inner()
}
///|
pub impl Semigroup for NonEmptyString with op_add(a, b) {
a.inner() + b.inner()
}
///|
pub impl Length for NonEmptyString with length(str) {
str.inner().length()
}
///|
pub impl GetChar for NonEmptyString with op_get(str, index) {
str.inner().charcode_at(index).unsafe_to_char()
}