pub enum LiNo<T> {
Link {
id: Option<T>,
values: Vec<Self>,
},
Ref(T),
}Variants§
Implementations§
Source§impl<T> LiNo<T>
impl<T> LiNo<T>
pub fn is_ref(&self) -> bool
pub fn is_link(&self) -> bool
Sourcepub fn new(id: Option<T>, values: Vec<Self>) -> Self
pub fn new(id: Option<T>, values: Vec<Self>) -> Self
Creates a new link with the given ID and values.
This method allows creating links with any number of values, providing an alternative to tuple conversion for cases where more than 12 values are needed.
§Examples
use links_notation::LiNo;
// Create a link with many values
let values: Vec<LiNo<String>> = (1..=20)
.map(|i| LiNo::Ref(format!("v{}", i)))
.collect();
let link = LiNo::new(Some("id".to_string()), values);Source§impl<T: ToString + Clone> LiNo<T>
impl<T: ToString + Clone> LiNo<T>
Sourcepub fn format_with_config(&self, config: &FormatConfig) -> String
pub fn format_with_config(&self, config: &FormatConfig) -> String
Source§impl LiNo<SyntaxReference>
impl LiNo<SyntaxReference>
Sourcepub fn into_values(self) -> LiNo<String>
pub fn into_values(self) -> LiNo<String>
The same link with plain IDs, which is what the AST mode reads: every
SyntaxReference becomes its value.
§Examples
use links_notation::{LiNo, parse_lino_to_links, parse_lino_to_syntax_links};
let syntax = parse_lino_to_syntax_links("('a': \"b\")").unwrap();
let plain: LiNo<String> = syntax[0].clone().into_values();
assert_eq!(plain, parse_lino_to_links("(a: b)").unwrap()[0]);
assert_eq!(LiNo::<String>::from(syntax[0].clone()), plain);Sourcepub fn raw_id(&self) -> Option<&str>
pub fn raw_id(&self) -> Option<&str>
The ID exactly as the document wrote it: the text of a reference, or of
a link’s ID. None for a link without an ID and for a reference built
in code.
§Examples
use links_notation::{LiNo, parse_lino_to_syntax_links};
let links = parse_lino_to_syntax_links("'a': ~1{62}").unwrap();
assert_eq!(links[0].raw_id(), Some("'a'"));
let LiNo::Link { values, .. } = &links[0] else { unreachable!() };
assert_eq!(values[0].raw_id(), Some("~1{62}"));Sourcepub fn quote(&self) -> Option<char>
pub fn quote(&self) -> Option<char>
The delimiter the ID was written between: ', " or ` when it
was quoted, and None otherwise; see SyntaxReference::quote.
Trait Implementations§
Source§impl From<(&str, &str, &str, &str, &str, &str, &str, &str, &str, &str, &str)> for LiNo<String>
impl From<(&str, &str, &str, &str, &str, &str, &str, &str, &str, &str, &str)> for LiNo<String>
Source§impl From<(&str, &str, &str, &str, &str, &str, &str, &str, &str, &str, &str, &str)> for LiNo<String>
impl From<(&str, &str, &str, &str, &str, &str, &str, &str, &str, &str, &str, &str)> for LiNo<String>
Source§impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(&str, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(&str, Vec<&str>)> for LiNo<String>
Convert a tuple of (id, Vec) into a named link.
impl From<(&str, Vec<&str>)> for LiNo<String>
Convert a tuple of (id, Vec
§Examples
use links_notation::LiNo;
// Create named link with arbitrary number of values
let values: Vec<&str> = vec!["v1", "v2", "v3", "v4", "v5"];
let link: LiNo<String> = ("myLink", values).into();
assert_eq!(format!("{}", link), "(myLink: v1 v2 v3 v4 v5)");Source§impl From<(&str, Vec<LiNo<String>>)> for LiNo<String>
Convert a tuple of (id, Vec) into a named link.
impl From<(&str, Vec<LiNo<String>>)> for LiNo<String>
Convert a tuple of (id, Vec
Source§impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
impl From<(LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>, LiNo<String>)> for LiNo<String>
Source§impl From<(String, String, String, String, String, String, String, String, String)> for LiNo<String>
impl From<(String, String, String, String, String, String, String, String, String)> for LiNo<String>
Source§impl From<(String, String, String, String, String, String, String, String, String, String)> for LiNo<String>
impl From<(String, String, String, String, String, String, String, String, String, String)> for LiNo<String>
Source§impl From<(String, String, String, String, String, String, String, String, String, String, String)> for LiNo<String>
impl From<(String, String, String, String, String, String, String, String, String, String, String)> for LiNo<String>
Source§impl From<(String, String, String, String, String, String, String, String, String, String, String, String)> for LiNo<String>
impl From<(String, String, String, String, String, String, String, String, String, String, String, String)> for LiNo<String>
Source§impl From<(String, Vec<LiNo<String>>)> for LiNo<String>
Convert a tuple of (String id, Vec) into a named link.
impl From<(String, Vec<LiNo<String>>)> for LiNo<String>
Convert a tuple of (String id, Vec
Source§impl From<(String, Vec<String>)> for LiNo<String>
Convert a tuple of (id, Vec) into a named link.
impl From<(String, Vec<String>)> for LiNo<String>
Convert a tuple of (id, Vec
Source§impl From<LiNo<SyntaxReference>> for LiNo<String>
Drops how the IDs were written; see LiNo::into_values.
impl From<LiNo<SyntaxReference>> for LiNo<String>
Drops how the IDs were written; see LiNo::into_values.
Source§fn from(link: LiNo<SyntaxReference>) -> Self
fn from(link: LiNo<SyntaxReference>) -> Self
Source§impl From<Vec<&str>> for LiNo<String>
Convert a Vec of strings into an anonymous link.
impl From<Vec<&str>> for LiNo<String>
Convert a Vec of strings into an anonymous link.
§Examples
use links_notation::LiNo;
// Create anonymous link from vector of any size
let values: Vec<&str> = (1..=20).map(|_| "val").collect();
let link: LiNo<String> = values.into();