vcard/tree/value/language.rs
1//! # Language-tag value codec (RFC 6350 4.8)
2//!
3//! [`VcardCodec`] for a language-tag value, a single scalar kept as its raw
4//! text.
5
6use crate::{
7 tree::{
8 codec::{VcardCodec, encode::scalar_node, mode::VcardEscaper},
9 value::node::VcardValueNode,
10 },
11 value::language::VcardLanguageTag,
12};
13
14impl<'v> VcardCodec<'v> for VcardLanguageTag<'v> {
15 fn decode(node: &'v VcardValueNode<'_>) -> Self {
16 VcardLanguageTag(node.decode_scalar_at(0))
17 }
18
19 fn encode(&self, escaper: VcardEscaper) -> VcardValueNode<'static> {
20 scalar_node(&self.0, escaper)
21 }
22}