ratatui_toolkit/widgets/markdown_widget/foundation/source/methods/
set_content.rs

1//! Method to set content directly on a `MarkdownSource`.
2
3use super::super::MarkdownSource;
4
5impl MarkdownSource {
6    /// Set the content directly (for string sources).
7    ///
8    /// This is useful for updating string-based sources programmatically.
9    /// For file sources, this updates the cached content but does not write to disk.
10    ///
11    /// Returns `true` if the content was changed.
12    pub fn set_content(&mut self, new_content: impl Into<String>) -> bool {
13        let new_content = new_content.into();
14        match self {
15            Self::String(content) => {
16                if *content != new_content {
17                    *content = new_content;
18                    true
19                } else {
20                    false
21                }
22            }
23            Self::File { content, .. } => {
24                if *content != new_content {
25                    *content = new_content;
26                    true
27                } else {
28                    false
29                }
30            }
31        }
32    }
33}