Section 6 - Conversions
When we’ve accessed the area, group and serial numbers in previous
sections, we’ve used .write
to return them as String
s. That’s
because the actual return type is Repeated.Exactly[N, Digit]
, which
gives it’s values as a list of Int
s. That’s a bit difficult to work
with, and they’d be more naturally represented as Int
s.
Ropes provides a way to do this using ConvertedTo
, which takes a rope
type and the type you want to convert to and from:
import ropes.core._
type Area = Repeated.Exactly[3, Digit] ConvertedTo Int Named "Area"
type Group = Repeated.Exactly[2, Digit] ConvertedTo Int Named "Group"
type Serial = Repeated.Exactly[4, Digit] ConvertedTo Int Named "Serial"
We can now use .value
on each section and get a simple Int
:
parsed.section["Area"].value
// res0: Int = 78
parsed.section["Group"].value
// res1: Int = 5
parsed.section["Serial"].value
// res2: Int = 1120