Skip to content

Commit

Permalink
Split with Serializable interface
Browse files Browse the repository at this point in the history
There is a new interface called Serializable. It allows a widget to
convert its data into a TOML string and to read data from a TOML string
by using the from_toml() and to_toml() virtual methods.

The EndpointPane has been modified so that it implements this interface
and knows how to persist its data through the RequestFile struct.

The ItemPane is finally using interfaces to communicate. It knows how to
load and save data from Serializable objects. As long as the child is a
Serializable, the load_pane() and save_pane() methods can be used to
load data from a gio::File and to save data into a gio::File by using
the Serializable virtual methods to get or assign the TOML
representation.
  • Loading branch information
danirod committed Jan 6, 2025
1 parent 7eec184 commit 4d28748
Show file tree
Hide file tree
Showing 7 changed files with 749 additions and 541 deletions.
35 changes: 35 additions & 0 deletions src/error.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
// Copyright 2024-2025 the Cartero authors
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
// SPDX-License-Identifier: GPL-3.0-or-later

use srtemplate::SrTemplateError;
use thiserror::Error;

Expand Down Expand Up @@ -35,3 +52,21 @@ pub enum CarteroError {
#[error("Outdated schema, please update the software")]
OutdatedSchema,
}

#[derive(Debug, Error)]
pub enum FileOperationError {
#[error("No file was assigned")]
NoFileGiven,

#[error("Cannot read file")]
FileReadError,

#[error("Cannot decode file")]
FileDecodeError,

#[error("Cannot encode file")]
FileEncodeError,

#[error("Cannot write file")]
FileWriteError,
}
Loading

0 comments on commit 4d28748

Please sign in to comment.