#[fp_macros::document_module]
mod inner {
use {
fp_macros::*,
std::marker::PhantomData,
};
#[document_type_parameters(
"The cloneable function brand.",
"The type of focus values extracted from the source.",
"The type of replacement values used during reconstruction."
)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct BazaarBrand<FunctionBrand, A, B>(PhantomData<(FunctionBrand, A, B)>);
#[document_type_parameters(
"The cloneable function brand.",
"The type of focus values extracted from the source.",
"The type of replacement values used during reconstruction."
)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct BazaarListBrand<FunctionBrand, A, B>(PhantomData<(FunctionBrand, A, B)>);
#[document_type_parameters(
"The cloneable function brand.",
"The type of the value produced by the forward function.",
"The type of the value consumed by the backward function."
)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct ExchangeBrand<FunctionBrand, A, B>(PhantomData<(FunctionBrand, A, B)>);
#[document_type_parameters("The pointer brand.", "The return type of the function.")]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct ForgetBrand<PointerBrand, R>(PhantomData<(PointerBrand, R)>);
#[document_type_parameters(
"The cloneable function brand.",
"The type of the value produced by the inner function.",
"The type of the value consumed by the inner function."
)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct GratingBrand<FunctionBrand, A, B>(PhantomData<(FunctionBrand, A, B)>);
#[document_type_parameters("The underlying profunctor brand.", "The index type.")]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct IndexedBrand<P, I>(PhantomData<(P, I)>);
#[document_type_parameters(
"The cloneable function brand.",
"The type of the value produced by the preview function.",
"The type of the value consumed by the review function."
)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct MarketBrand<FunctionBrand, A, B>(PhantomData<(FunctionBrand, A, B)>);
#[document_type_parameters(
"The inner profunctor brand whose instances are reversed.",
"The outer cloneable function pointer brand for wrapping the `run` function.",
"The fixed source type.",
"The fixed target type."
)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct ReverseBrand<InnerP, PointerBrand, S, T>(PhantomData<(InnerP, PointerBrand, S, T)>);
#[document_type_parameters(
"The cloneable function brand.",
"The type of the value produced by the getter.",
"The type of the value consumed by the setter."
)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct ShopBrand<FunctionBrand, A, B>(PhantomData<(FunctionBrand, A, B)>);
#[document_type_parameters(
"The cloneable function brand.",
"The type of the value produced by the preview function.",
"The type of the value consumed by the setter."
)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct StallBrand<FunctionBrand, A, B>(PhantomData<(FunctionBrand, A, B)>);
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct TaggedBrand;
#[document_type_parameters("The cloneable function brand.")]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct ZippingBrand<FunctionBrand>(PhantomData<FunctionBrand>);
}
pub use inner::*;