fatline-rs 0.2.2

Farcaster grpc client and utility library
Documentation
use std::fmt::{Display, Formatter};
use thiserror::Error;
use tonic::Status;

// dunno if this is a nice pattern but let's see
#[derive(Debug)]
pub enum DataType {
    Fids,
    Casts,
    Links,
    Reacts,
}

impl Display for DataType {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        let variant_name = match self {
            DataType::Fids => "fids",
            DataType::Casts => "casts",
            DataType::Links => "links",
            DataType::Reacts => "reacts"
        };
        write!(f, "{}", variant_name)
    }
}

#[derive(Debug, Error)]
pub enum FatlineError {
    #[error("No data available when requesting {0} data type")]
    NoDataAvailable(DataType),
    #[error("Error fetching from client: {0}")]
    ClientError(Status)
}