use super::EditorDocument;
use crate::core::position::Position;
#[cfg(feature = "formats")]
use crate::core::errors::Result;
#[cfg(not(feature = "std"))]
use alloc::string::String;
impl EditorDocument {
#[must_use]
pub fn id(&self) -> &str {
&self.id
}
#[must_use]
pub fn file_path(&self) -> Option<&str> {
self.file_path.as_deref()
}
pub fn set_file_path(&mut self, path: Option<String>) {
self.file_path = path;
}
#[cfg(feature = "formats")]
pub fn import_format(
content: &str,
format: Option<crate::utils::formats::SubtitleFormat>,
) -> Result<Self> {
let ass_content = crate::utils::formats::FormatConverter::import(content, format)?;
Self::from_content(&ass_content)
}
#[cfg(feature = "formats")]
pub fn export_format(
&self,
format: crate::utils::formats::SubtitleFormat,
options: &crate::utils::formats::ConversionOptions,
) -> Result<String> {
crate::utils::formats::FormatConverter::export(self, format, options)
}
#[must_use]
pub const fn is_modified(&self) -> bool {
self.modified
}
#[must_use]
pub fn cursor_position(&self) -> Option<Position> {
self.history.cursor_position()
}
pub fn set_cursor_position(&mut self, position: Option<Position>) {
self.history.set_cursor(position);
}
pub fn set_modified(&mut self, modified: bool) {
self.modified = modified;
}
}