p
Most model classes contain both serialisation & parsing functionality, following these conventions:
Most model classes contain both serialisation & parsing functionality, following these conventions:
.toString returns a representation of the model class in a format as in an HTTP request/response. For example,
for an uri this will be http://..., for a header [name]: [value], etc.[SthCompanionObject].parse(serialized: String): Either[String, Sth]: returns an error message or an instance
of the model class[SthCompanionObject].unsafeParse(serialized: String): Sth: returns an instance of the model class or in case
of an error, *throws an exception*.[SthCompanionObject].unsafeApply(values): creates an instance of the model class; validates the input values
and in case of an error, *throws an exception*. An error could be e.g. that the input values contain characters
outside of the allowed range[SthCompanionObject].safeApply(...): Either[String, Sth]: same as above, but doesn't throw exceptions.
Instead, returns an error message or the model class instance[SthCompanionObject].apply(...): Sth: creates the model type, without validation, and without throwing
exceptions