obsidian_parser/note/
note_default.rs1use serde::de::DeserializeOwned;
4
5use super::{DefaultProperties, Note};
6use crate::note::{NoteFromReader, NoteFromString};
7use std::{io::Read, path::Path};
8
9pub trait NoteDefault: Note {
14 fn from_string_default(raw_text: impl AsRef<str>) -> Result<Self, Self::Error>
16 where
17 Self: NoteFromString,
18 Self::Properties: DeserializeOwned;
19
20 #[cfg(not(target_family = "wasm"))]
22 fn from_file_default(path: impl AsRef<Path>) -> Result<Self, Self::Error>
23 where
24 Self: crate::prelude::NoteFromFile,
25 Self::Properties: DeserializeOwned,
26 Self::Error: From<std::io::Error>;
27
28 fn from_reader_default(reader: &mut impl Read) -> Result<Self, Self::Error>
30 where
31 Self: NoteFromReader,
32 Self::Properties: DeserializeOwned,
33 Self::Error: From<std::io::Error>;
34}
35
36impl<T> NoteDefault for T
37where
38 T: Note<Properties = DefaultProperties>,
39{
40 fn from_string_default(raw_text: impl AsRef<str>) -> Result<Self, Self::Error>
41 where
42 Self: NoteFromString,
43 Self::Properties: DeserializeOwned,
44 {
45 Self::from_string(raw_text)
46 }
47
48 #[cfg(not(target_family = "wasm"))]
49 fn from_file_default(path: impl AsRef<Path>) -> Result<Self, Self::Error>
50 where
51 Self: crate::prelude::NoteFromFile,
52 Self::Properties: DeserializeOwned,
53 Self::Error: From<std::io::Error>,
54 {
55 Self::from_file(path)
56 }
57
58 fn from_reader_default(reader: &mut impl Read) -> Result<Self, Self::Error>
59 where
60 Self: NoteFromReader,
61 Self::Properties: DeserializeOwned,
62 Self::Error: From<std::io::Error>,
63 {
64 Self::from_reader(reader)
65 }
66}