212 sealed abstract class Name |
212 sealed abstract class Name |
213 case object Default extends Name |
213 case object Default extends Name |
214 case class Id(id: Document_ID.Generic) extends Name |
214 case class Id(id: Document_ID.Generic) extends Name |
215 case class File(name: String) extends Name |
215 case class File(name: String) extends Name |
216 |
216 |
217 val encode_name: XML.Encode.T[Name] = |
|
218 { |
|
219 import XML.Encode._ |
|
220 variant(List( |
|
221 { case Default => (Nil, Nil) }, |
|
222 { case Id(a) => (List(long_atom(a)), Nil) }, |
|
223 { case File(a) => (List(a), Nil) })) |
|
224 } |
|
225 |
|
226 val decode_name: XML.Decode.T[Name] = |
|
227 { |
|
228 import XML.Decode._ |
|
229 variant(List( |
|
230 { case (Nil, Nil) => Default }, |
|
231 { case (List(a), Nil) => Id(long_atom(a)) }, |
|
232 { case (List(a), Nil) => File(a) })) |
|
233 } |
|
234 |
|
235 def apply(text: CharSequence): Text_Chunk = |
217 def apply(text: CharSequence): Text_Chunk = |
236 new Text_Chunk(Text.Range(0, text.length), Index(text)) |
218 new Text_Chunk(Text.Range(0, text.length), Index(text)) |
237 } |
219 } |
238 |
220 |
239 final class Text_Chunk private(val range: Text.Range, private val index: Index) |
221 final class Text_Chunk private(val range: Text.Range, private val index: Index) |