*/ declare(strict_types = 1); /** * Represents a time indicator (CE / BCE). */ enum NodaTimeBeforeAfterIndicator implements JsonSerializable { case none; case after; case before; case since; case until; /** * Returns a value of this type based on a string. * * @param string $input Input to get a value from. * * @return NodaTimeBeforeAfterIndicator */ public static function fromString(string $input):NodaTimeBeforeAfterIndicator { return match($input) { '' => self::none, 'Nach' => self::after, 'Vor' => self::before, 'Seit' => self::since, 'Bis' => self::until, default => throw new MDpageParameterNotFromListException("Unknown before / after indicator"), }; } /** * Returns a canonical string representation. * * @return string */ public function toString():string { return match($this) { self::none => '', self::after => 'Nach', self::before => 'Vor', self::since => 'Seit', self::until => 'Bis', }; } /** * Provides the option to serialize as a string during json_encode(). * * @return string */ public function jsonSerialize():string { return $this->name; } }