==================
Length-prefixed value spanning lines
==================
#!srfv1
#!long
data with newlines must have a length:7:foo
bar
name::alice

---

(document
  (magic)
  (directive
    (directive_long))
  (field
    (typed_field
      (key)
      (type_hint)
      (value)))
  (field
    (untyped_field
      (key)
      (value))))

==================
Length-prefixed value from the SRF type table
==================
#!srfv1
#!long
bio:12:hello
world!

---

(document
  (magic)
  (directive
    (directive_long))
  (field
    (typed_field
      (key)
      (type_hint)
      (value))))

==================
Length-prefixed value containing commas in compact format
==================
#!srfv1
k:5:a,b,c,next::x

---

(document
  (magic)
  (field
    (typed_field
      (key)
      (type_hint)
      (value)))
  (field
    (untyped_field
      (key)
      (value))))

==================
Length counts bytes, not characters
==================
#!srfv1
#!long
yen:3:¥5
next::ok

---

(document
  (magic)
  (directive
    (directive_long))
  (field
    (typed_field
      (key)
      (type_hint)
      (value)))
  (field
    (untyped_field
      (key)
      (value))))

==================
Length-prefixed value containing field syntax
==================
#!srfv1
#!long
raw:14:k::not a field
name::alice

---

(document
  (magic)
  (directive
    (directive_long))
  (field
    (typed_field
      (key)
      (type_hint)
      (value)))
  (field
    (untyped_field
      (key)
      (value))))

==================
Zero length is an empty value
==================
#!srfv1
#!long
empty:0:
name::alice

---

(document
  (magic)
  (directive
    (directive_long))
  (field
    (typed_field
      (key)
      (type_hint)))
  (field
    (untyped_field
      (key)
      (value))))

==================
Whitespace around a length hint
==================
#!srfv1
#!long
padded: 7 :foo
bar

---

(document
  (magic)
  (directive
    (directive_long))
  (field
    (typed_field
      (key)
      (type_hint)
      (value))))
