package Ġio . github . z 4 kn 4 fe in . semver . samples Ċ Ċ import Ġio . github . z 4 kn 4 fe in . semver . Inc Ċ import Ġio . github . z 4 kn 4 fe in . semver . L oose Version Serializer Ċ import Ġio . github . z 4 kn 4 fe in . semver . Version Ċ import Ġio . github . z 4 kn 4 fe in . semver . Version Serializer Ċ import Ġio . github . z 4 kn 4 fe in . semver . constraints . to Constraint Ċ import Ġio . github . z 4 kn 4 fe in . semver . inc Ċ import Ġio . github . z 4 kn 4 fe in . semver . next Major Ċ import Ġio . github . z 4 kn 4 fe in . semver . next Minor Ċ import Ġio . github . z 4 kn 4 fe in . semver . next Patch Ċ import Ġio . github . z 4 kn 4 fe in . semver . next Pre Release Ċ import Ġio . github . z 4 kn 4 fe in . semver . satisf ies Ċ import Ġio . github . z 4 kn 4 fe in . semver . satisf ies All Ċ import Ġio . github . z 4 kn 4 fe in . semver . satisf ies Any Ċ import Ġio . github . z 4 kn 4 fe in . semver . to Version Ċ import Ġio . github . z 4 kn 4 fe in . semver . to Version OrNull Ċ import Ġio . github . z 4 kn 4 fe in . semver . without Suffix es Ċ import Ġkotlinx . serialization . json . Json Ċ Ċ class ĠVersion Samples Ġ{ ĊĠĠĠ Ġfun Ġexplode () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġ" 1 . 2 . 3 - alpha . 1 + build . 1 ". to Version () ĊĠĠĠĠĠĠĠ Ġprintln (" Version : Ġ$ version ") ĊĠĠĠĠĠĠĠ Ġprintln (" Major : Ġ${ version . major }, ĠMinor : Ġ${ version . minor }, ĠPatch : Ġ${ version . patch }") ĊĠĠĠĠĠĠĠ Ġprintln (" Pre - release : Ġ${ version . pre Release }") ĊĠĠĠĠĠĠĠ Ġprintln (" Build Ġmetadata : Ġ${ version . build Metadata }") ĊĠĠĠĠĠĠĠ Ġprintln (" Is Ġit Ġpre - release ? Ġ${ version . is Pre Release }") ĊĠĠĠĠĠĠĠ Ġprintln (" Is Ġit Ġstable ? Ġ${ version . is Stable }") ĊĊĠĠĠĠĠĠĠ Ġ// Ġequality ĊĠĠĠĠĠĠĠ Ġprintln (" Is Ġ 1 . 0 . 0 Ġ== Ġ 1 . 0 . 0 ? Ġ${ " 1 . 0 . 0 ". to Version () Ġ== Ġ" 1 . 0 . 0 ". to Version () }") ĊĠĠĠĠĠĠĠ Ġprintln (" Is Ġ 1 . 0 . 0 Ġ== Ġ 1 . 0 . 1 ? Ġ${ " 1 . 0 . 0 ". to Version () Ġ== Ġ" 1 . 0 . 1 ". to Version () }") ĊĊĠĠĠĠĠĠĠ Ġ// Ġcomparison ĊĠĠĠĠĠĠĠ Ġprintln (" Is Ġ 1 . 0 . 1 Ġ> Ġ 1 . 0 . 0 ? Ġ${ " 1 . 0 . 1 ". to Version () Ġ> Ġ" 1 . 0 . 0 ". to Version () }") ĊĠĠĠĠĠĠĠ Ġprintln (" Is Ġ 1 . 0 . 0 - alpha . 1 Ġ> Ġ 1 . 0 . 0 - alpha . 0 ? Ġ${ " 1 . 0 . 0 - alpha . 1 ". to Version () Ġ> Ġ" 1 . 0 . 0 - alpha . 0 ". to Version () }") ĊĊĠĠĠĠĠĠĠ Ġ// Ġrange ĊĠĠĠĠĠĠĠ Ġprintln (" Is Ġ 1 . 0 . 1 Ġin Ġ 1 . 0 . 0 Ġ.. Ġ 1 . 0 . 2 ? Ġ${ " 1 . 0 . 1 ". to Version () Ġin Ġ" 1 . 0 . 0 ". to Version () .." 1 . 0 . 2 ". to Version () }") ĊĊĠĠĠĠĠĠĠ Ġ// Ġdestruct uring ĊĠĠĠĠĠĠĠ Ġprint (" Dest ruct uring : Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġ( major , Ġminor , Ġpatch , Ġpre Release , Ġbuild ) Ġ= Ġ" 1 . 0 . 0 - alpha + build ". to Version () ĊĠĠĠĠĠĠĠ Ġprint ("$ major Ġ$ minor Ġ$ patch Ġ$ pre Release Ġ$ build ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparse Strict () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( Version . parse (" 1 . 0 . 0 - alpha . 1 + build . 1 ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparse L oose () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( Version . parse (" v 1 . 0 - alpha . 1 + build . 1 ", Ġstrict Ġ= Ġfalse )) ĊĠĠĠĠĠĠĠ Ġprintln ( Version . parse (" 1 - alpha ", Ġstrict Ġ= Ġfalse )) ĊĠĠĠĠĠĠĠ Ġprintln ( Version . parse (" 2 ", Ġstrict Ġ= Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexception () Ġ{ ĊĠĠĠĠĠĠĠ Ġ" 1 . 0 . a ". to Version () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpre Release Exception () Ġ{ ĊĠĠĠĠĠĠĠ Ġ" 1 . 0 . 1 ". to Version (). next Patch ( pre Release Ġ= Ġ" alpha . 0 1 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconstruct () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( Version ( major Ġ= Ġ 1 , Ġpre Release Ġ= Ġ" alpha ")) ĊĠĠĠĠĠĠĠ Ġprintln ( Version ( major Ġ= Ġ 1 , Ġminor Ġ= Ġ 1 , Ġbuild Metadata Ġ= Ġ" build ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Version Strict () Ġ{ ĊĠĠĠĠĠĠĠ Ġprint (" 1 . 0 . 0 - alpha . 1 + build . 1 ". to Version ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Version L oose () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" v 1 . 0 . 0 - alpha . 1 + build . 1 ". to Version ( strict Ġ= Ġfalse )) ĊĠĠĠĠĠĠĠ Ġprintln (" v 1 - alpha ". to Version ( strict Ġ= Ġfalse )) ĊĠĠĠĠĠĠĠ Ġprintln (" 2 ". to Version ( strict Ġ= Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Version OrNull Strict () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" 1 . 0 . 0 - alpha . 1 + build . 1 ". to Version OrNull ()) ĊĠĠĠĠĠĠĠ Ġprintln (" 1 . 1 . a ". to Version OrNull ()) ĊĠĠĠĠĠĠĠ Ġprintln (" v 1 . 1 . 0 ". to Version OrNull ()) ĊĠĠĠĠĠĠĠ Ġprintln (" 1 . 1 ". to Version OrNull ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Version OrNull L oose () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" v 1 . 1 . 0 ". to Version OrNull ( strict Ġ= Ġfalse )) ĊĠĠĠĠĠĠĠ Ġprintln (" 1 . 1 - alpha . 1 + build . 1 ". to Version OrNull ( strict Ġ= Ġfalse )) ĊĠĠĠĠĠĠĠ Ġprintln (" 1 ". to Version OrNull ( strict Ġ= Ġfalse )) ĊĠĠĠĠĠĠĠ Ġprintln (" v 1 ". to Version OrNull ( strict Ġ= Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcopy () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġ" 1 . 0 . 0 - alpha . 1 ". to Version () ĊĠĠĠĠĠĠĠ Ġprint ( version . copy ( minor Ġ= Ġ 1 , Ġpre Release Ġ= Ġ" beta . 0 ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinc () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġ" 1 . 0 . 0 - alpha . 1 ". to Version () ĊĠĠĠĠĠĠĠ Ġprintln ( version . inc ( by Ġ= ĠInc . MAJOR )) ĊĠĠĠĠĠĠĠ Ġprintln ( version . inc ( by Ġ= ĠInc . MINOR )) ĊĠĠĠĠĠĠĠ Ġprintln ( version . inc ( by Ġ= ĠInc . PATCH )) ĊĠĠĠĠĠĠĠ Ġprintln ( version . inc ( by Ġ= ĠInc . PRE _ RELEASE )) ĊĊĠĠĠĠĠĠĠ Ġprintln ( version . inc ( by Ġ= ĠInc . MAJOR , Ġpre Release Ġ= Ġ"")) ĊĠĠĠĠĠĠĠ Ġprintln ( version . inc ( by Ġ= ĠInc . MINOR , Ġpre Release Ġ= Ġ" beta ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnext Major () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġ" 1 . 0 . 0 - alpha . 1 ". to Version () ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Major ()) ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Major ( pre Release Ġ= Ġ"")) ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Major ( pre Release Ġ= Ġ" alpha ")) ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Major ( pre Release Ġ= Ġ" SNAPSHOT ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnext Minor () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġ" 1 . 0 . 0 - alpha . 1 ". to Version () ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Minor ()) ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Minor ( pre Release Ġ= Ġ"")) ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Minor ( pre Release Ġ= Ġ" alpha ")) ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Minor ( pre Release Ġ= Ġ" SNAPSHOT ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnext Patch () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġ" 1 . 0 . 0 - alpha . 1 ". to Version () ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Patch ()) ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Patch ( pre Release Ġ= Ġ"")) ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Patch ( pre Release Ġ= Ġ" alpha ")) ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Patch ( pre Release Ġ= Ġ" SNAPSHOT ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnext Pre Release () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġ" 1 . 0 . 0 - alpha . 1 ". to Version () ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Pre Release ()) ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Pre Release ( pre Release Ġ= Ġ"")) ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Pre Release ( pre Release Ġ= Ġ" alpha ")) ĊĠĠĠĠĠĠĠ Ġprintln ( version . next Pre Release ( pre Release Ġ= Ġ" SNAPSHOT ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmin () Ġ{ ĊĠĠĠĠĠĠĠ Ġprint ( Version . min ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsatisfies () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconstraint Ġ= Ġ">= 1 . 1 . 0 ". to Constraint () ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġ" 1 . 1 . 1 ". to Version () ĊĠĠĠĠĠĠĠ Ġprint ("$ version Ġsatisfies Ġ$ constraint ? Ġ${ version Ġsatisfies Ġconstraint }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsatisfies All () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconstraints Ġ= ĠlistOf ("> = 1 . 1 . 0 ", Ġ"~ 1 "). map Ġ{ Ġit . to Constraint () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġ" 1 . 1 . 1 ". to Version () ĊĠĠĠĠĠĠĠ Ġprint ("$ version Ġsatisfies Ġ${ constraints . join ToString (" Ġand Ġ" )} ? Ġ${ version Ġsatisfies All Ġconstraints }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsatisfies Any () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconstraints Ġ= ĠlistOf ("> = 1 . 1 . 0 ", Ġ"~ 1 "). map Ġ{ Ġit . to Constraint () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġ" 1 . 1 . 1 ". to Version () ĊĠĠĠĠĠĠĠ Ġprint ("$ version Ġsatisfies Ġ${ constraints . join ToString (" Ġor Ġ" )} ? Ġ${ version Ġsatisfies Any Ġconstraints }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwithout Suffix es () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġ" 1 . 0 . 0 - alpha . 1 + build ". to Version () ĊĠĠĠĠĠĠĠ Ġprint ( version . without Suffix es ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġserialization () Ġ{ ĊĠĠĠĠĠĠĠ Ġprint ( Json . encode ToString ( Version Serializer , Ġ" 1 . 0 . 0 - alpha . 1 + build ". to Version ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġde serialization () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdecoded Ġ= ĠJson . decode FromString ( Version Serializer , Ġ"\" 1 . 0 . 0 - alpha . 1 + build \" ") ĊĊĠĠĠĠĠĠĠ Ġprintln ( decoded . major ) ĊĠĠĠĠĠĠĠ Ġprintln ( decoded . minor ) ĊĠĠĠĠĠĠĠ Ġprintln ( decoded . patch ) ĊĠĠĠĠĠĠĠ Ġprintln ( decoded . pre Release ) ĊĠĠĠĠĠĠĠ Ġprintln ( decoded . build Metadata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġloose Serialization () Ġ{ ĊĠĠĠĠĠĠĠ Ġprint ( Json . encode ToString ( L oose Version Serializer , Ġ" 1 - alpha . 1 + build ". to Version ( strict Ġ= Ġfalse ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġloose Deserialization () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdecoded Ġ= ĠJson . decode FromString ( L oose Version Serializer , Ġ"\" 1 + build . 3 \" ") ĊĊĠĠĠĠĠĠĠ Ġprintln ( decoded . major ) ĊĠĠĠĠĠĠĠ Ġprintln ( decoded . minor ) ĊĠĠĠĠĠĠĠ Ġprintln ( decoded . patch ) ĊĠĠĠĠĠĠĠ Ġprintln ( decoded . pre Release ) ĊĠĠĠĠĠĠĠ Ġprintln ( decoded . build Metadata ) ĊĠĠĠ Ġ} Ċ } Ċ