forked from MightyPork/elefren-fork
Move the toml helpers to elefren::helpers::toml
This commit is contained in:
@@ -39,7 +39,7 @@ use std::error::Error;
|
|||||||
|
|
||||||
use elefren::prelude::*;
|
use elefren::prelude::*;
|
||||||
use elefren::apps::prelude::*;
|
use elefren::apps::prelude::*;
|
||||||
use elefren::data::toml; // requires `features = ["toml"]`
|
use elefren::helpers::toml; // requires `features = ["toml"]`
|
||||||
|
|
||||||
fn main() -> Result<(), Box<Error>> {
|
fn main() -> Result<(), Box<Error>> {
|
||||||
let mastodon = if let Ok(data) = toml::from_file("mastodon-data.toml") {
|
let mastodon = if let Ok(data) = toml::from_file("mastodon-data.toml") {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ pub use self::elefren::{apps::prelude::*, prelude::*};
|
|||||||
use std::{error::Error, io};
|
use std::{error::Error, io};
|
||||||
|
|
||||||
#[cfg(feature = "toml")]
|
#[cfg(feature = "toml")]
|
||||||
use self::elefren::data::toml;
|
use self::elefren::helpers::toml;
|
||||||
|
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
#[cfg(feature = "toml")]
|
#[cfg(feature = "toml")]
|
||||||
|
|||||||
-90
@@ -15,93 +15,3 @@ pub struct Data {
|
|||||||
/// The client's access token.
|
/// The client's access token.
|
||||||
pub token: Cow<'static, str>,
|
pub token: Cow<'static, str>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "toml")]
|
|
||||||
/// Helpers for serializing to/deserializing from toml
|
|
||||||
///
|
|
||||||
/// In order to use this module, set the "toml" feature in your Cargo.toml:
|
|
||||||
///
|
|
||||||
/// ```toml,ignore
|
|
||||||
/// [dependencies.elefren]
|
|
||||||
/// version = "0.12"
|
|
||||||
/// features = ["toml"]
|
|
||||||
/// ```
|
|
||||||
pub mod toml {
|
|
||||||
use super::Data;
|
|
||||||
use std::{
|
|
||||||
fs::{File, OpenOptions},
|
|
||||||
io::{BufWriter, Read, Write},
|
|
||||||
path::Path,
|
|
||||||
};
|
|
||||||
use Result;
|
|
||||||
|
|
||||||
use tomlcrate;
|
|
||||||
|
|
||||||
/// Attempts to deserialize a Data struct from a string
|
|
||||||
pub fn from_str(s: &str) -> Result<Data> {
|
|
||||||
Ok(tomlcrate::from_str(s)?)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Attempts to deserialize a Data struct from a slice of bytes
|
|
||||||
pub fn from_slice(s: &[u8]) -> Result<Data> {
|
|
||||||
Ok(tomlcrate::from_slice(s)?)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Attempts to deserialize a Data struct from something that implements
|
|
||||||
/// the std::io::Read trait
|
|
||||||
pub fn from_reader<R: Read>(mut r: R) -> Result<Data> {
|
|
||||||
let mut buffer = Vec::new();
|
|
||||||
r.read_to_end(&mut buffer)?;
|
|
||||||
from_slice(&buffer)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Attempts to deserialize a Data struct from a file
|
|
||||||
pub fn from_file<P: AsRef<Path>>(path: P) -> Result<Data> {
|
|
||||||
let path = path.as_ref();
|
|
||||||
let file = File::open(path)?;
|
|
||||||
Ok(from_reader(file)?)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Attempts to serialize a Data struct to a String
|
|
||||||
pub fn to_string(data: &Data) -> Result<String> {
|
|
||||||
Ok(tomlcrate::to_string_pretty(data)?)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Attempts to serialize a Data struct to a Vec of bytes
|
|
||||||
pub fn to_vec(data: &Data) -> Result<Vec<u8>> {
|
|
||||||
Ok(tomlcrate::to_vec(data)?)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Attempts to serialize a Data struct to something that implements the
|
|
||||||
/// std::io::Write trait
|
|
||||||
pub fn to_writer<W: Write>(data: &Data, writer: W) -> Result<()> {
|
|
||||||
let mut buf_writer = BufWriter::new(writer);
|
|
||||||
let vec = to_vec(data)?;
|
|
||||||
buf_writer.write(&vec)?;
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Attempts to serialize a Data struct to a file
|
|
||||||
///
|
|
||||||
/// When opening the file, this will set the `.write(true)` and
|
|
||||||
/// `.truncate(true)` options, use the next method for more
|
|
||||||
/// fine-grained control
|
|
||||||
pub fn to_file<P: AsRef<Path>>(data: &Data, path: P) -> Result<()> {
|
|
||||||
let mut options = OpenOptions::new();
|
|
||||||
options.write(true).truncate(true);
|
|
||||||
to_file_with_options(data, path, options)?;
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Attempts to serialize a Data struct to a file
|
|
||||||
pub fn to_file_with_options<P: AsRef<Path>>(
|
|
||||||
data: &Data,
|
|
||||||
path: P,
|
|
||||||
options: OpenOptions,
|
|
||||||
) -> Result<()> {
|
|
||||||
let path = path.as_ref();
|
|
||||||
let file = options.open(path)?;
|
|
||||||
to_writer(data, file)?;
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#[cfg(feature = "toml")]
|
||||||
|
/// Helpers for serializing to/deserializing from toml
|
||||||
|
///
|
||||||
|
/// In order to use this module, set the "toml" feature in your Cargo.toml:
|
||||||
|
///
|
||||||
|
/// ```toml,ignore
|
||||||
|
/// [dependencies.elefren]
|
||||||
|
/// version = "0.12"
|
||||||
|
/// features = ["toml"]
|
||||||
|
/// ```
|
||||||
|
pub mod toml;
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
use std::{
|
||||||
|
fs::{File, OpenOptions},
|
||||||
|
io::{BufWriter, Read, Write},
|
||||||
|
path::Path,
|
||||||
|
};
|
||||||
|
|
||||||
|
use tomlcrate;
|
||||||
|
|
||||||
|
use data::Data;
|
||||||
|
use Result;
|
||||||
|
|
||||||
|
/// Attempts to deserialize a Data struct from a string
|
||||||
|
pub fn from_str(s: &str) -> Result<Data> {
|
||||||
|
Ok(tomlcrate::from_str(s)?)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Attempts to deserialize a Data struct from a slice of bytes
|
||||||
|
pub fn from_slice(s: &[u8]) -> Result<Data> {
|
||||||
|
Ok(tomlcrate::from_slice(s)?)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Attempts to deserialize a Data struct from something that implements
|
||||||
|
/// the std::io::Read trait
|
||||||
|
pub fn from_reader<R: Read>(mut r: R) -> Result<Data> {
|
||||||
|
let mut buffer = Vec::new();
|
||||||
|
r.read_to_end(&mut buffer)?;
|
||||||
|
from_slice(&buffer)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Attempts to deserialize a Data struct from a file
|
||||||
|
pub fn from_file<P: AsRef<Path>>(path: P) -> Result<Data> {
|
||||||
|
let path = path.as_ref();
|
||||||
|
let file = File::open(path)?;
|
||||||
|
Ok(from_reader(file)?)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Attempts to serialize a Data struct to a String
|
||||||
|
pub fn to_string(data: &Data) -> Result<String> {
|
||||||
|
Ok(tomlcrate::to_string_pretty(data)?)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Attempts to serialize a Data struct to a Vec of bytes
|
||||||
|
pub fn to_vec(data: &Data) -> Result<Vec<u8>> {
|
||||||
|
Ok(tomlcrate::to_vec(data)?)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Attempts to serialize a Data struct to something that implements the
|
||||||
|
/// std::io::Write trait
|
||||||
|
pub fn to_writer<W: Write>(data: &Data, writer: W) -> Result<()> {
|
||||||
|
let mut buf_writer = BufWriter::new(writer);
|
||||||
|
let vec = to_vec(data)?;
|
||||||
|
buf_writer.write(&vec)?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Attempts to serialize a Data struct to a file
|
||||||
|
///
|
||||||
|
/// When opening the file, this will set the `.write(true)` and
|
||||||
|
/// `.truncate(true)` options, use the next method for more
|
||||||
|
/// fine-grained control
|
||||||
|
pub fn to_file<P: AsRef<Path>>(data: &Data, path: P) -> Result<()> {
|
||||||
|
let mut options = OpenOptions::new();
|
||||||
|
options.write(true).truncate(true);
|
||||||
|
to_file_with_options(data, path, options)?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Attempts to serialize a Data struct to a file
|
||||||
|
pub fn to_file_with_options<P: AsRef<Path>>(
|
||||||
|
data: &Data,
|
||||||
|
path: P,
|
||||||
|
options: OpenOptions,
|
||||||
|
) -> Result<()> {
|
||||||
|
let path = path.as_ref();
|
||||||
|
let file = options.open(path)?;
|
||||||
|
to_writer(data, file)?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
+3
-1
@@ -64,12 +64,14 @@ pub use status_builder::StatusBuilder;
|
|||||||
|
|
||||||
/// Registering your App
|
/// Registering your App
|
||||||
pub mod apps;
|
pub mod apps;
|
||||||
/// Working with client auth data
|
/// Contains the struct that holds the client auth data
|
||||||
pub mod data;
|
pub mod data;
|
||||||
/// Entities returned from the API
|
/// Entities returned from the API
|
||||||
pub mod entities;
|
pub mod entities;
|
||||||
/// Errors
|
/// Errors
|
||||||
pub mod errors;
|
pub mod errors;
|
||||||
|
/// Collection of helpers for serializing/deserializing `Data` objects
|
||||||
|
pub mod helpers;
|
||||||
/// Contains trait for converting `reqwest::Request`s to `reqwest::Response`s
|
/// Contains trait for converting `reqwest::Request`s to `reqwest::Response`s
|
||||||
pub mod http_send;
|
pub mod http_send;
|
||||||
/// Handling multiple pages of entities.
|
/// Handling multiple pages of entities.
|
||||||
|
|||||||
Reference in New Issue
Block a user