Propagate _code to Pkg trait
Signed-off-by: Luca Fulchir <luca.fulchir@runesauth.com>
This commit is contained in:
parent
5ba2440e12
commit
1d9ea5a699
|
@ -361,12 +361,13 @@ pub fn derive_package(input: TokenStream) -> TokenStream {
|
||||||
Some(&self.base)
|
Some(&self.base)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// FIXME: proper formatting of all functions
|
||||||
impl ::core::fmt::Display for #name {
|
impl ::core::fmt::Display for #name {
|
||||||
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>)
|
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>)
|
||||||
->::core::fmt::Result
|
->::core::fmt::Result
|
||||||
{
|
{
|
||||||
use ::bok::Pkg;
|
use ::bok::Pkg;
|
||||||
let pkg = self.package();
|
let pkg = self.package_code();
|
||||||
pkg.fmt(f)
|
pkg.fmt(f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
104
bok/src/lib.rs
104
bok/src/lib.rs
|
@ -84,28 +84,61 @@ impl Repository for RepositoryEmpty {}
|
||||||
/// Implement common package operations
|
/// Implement common package operations
|
||||||
pub trait Pkg: ::std::default::Default + ::core::fmt::Display {
|
pub trait Pkg: ::std::default::Default + ::core::fmt::Display {
|
||||||
fn base(&self) -> Option<&impl Pkg>;
|
fn base(&self) -> Option<&impl Pkg>;
|
||||||
fn prepare(&self) -> ::proc_macro2::TokenStream {
|
fn prepare(&self) -> ::core::result::Result<(), ()> {
|
||||||
self.base().unwrap().prepare()
|
self.base().unwrap().prepare()
|
||||||
}
|
}
|
||||||
fn configure(&self) -> ::proc_macro2::TokenStream {
|
fn prepare_code(&self) -> ::proc_macro2::TokenStream {
|
||||||
|
::quote::quote! {
|
||||||
|
self.base().unwrap().prepare()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn configure(&self) -> ::core::result::Result<(), ()> {
|
||||||
self.base().unwrap().configure()
|
self.base().unwrap().configure()
|
||||||
}
|
}
|
||||||
fn build(&self) -> ::proc_macro2::TokenStream {
|
fn configure_code(&self) -> ::proc_macro2::TokenStream {
|
||||||
|
::quote::quote! {
|
||||||
|
self.base().unwrap().configure()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn build(&self) -> ::core::result::Result<(), ()> {
|
||||||
self.base().unwrap().build()
|
self.base().unwrap().build()
|
||||||
}
|
}
|
||||||
fn check(&self) -> ::proc_macro2::TokenStream {
|
fn build_code(&self) -> ::proc_macro2::TokenStream {
|
||||||
|
::quote::quote! {
|
||||||
|
self.base().unwrap().build()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn check(&self) -> ::core::result::Result<(), ()> {
|
||||||
self.base().unwrap().check()
|
self.base().unwrap().check()
|
||||||
}
|
}
|
||||||
fn install(&self) -> ::proc_macro2::TokenStream {
|
fn check_code(&self) -> ::proc_macro2::TokenStream {
|
||||||
|
::quote::quote! {
|
||||||
|
self.base().unwrap().check()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn install(&self) -> ::core::result::Result<(), ()> {
|
||||||
self.base().unwrap().install()
|
self.base().unwrap().install()
|
||||||
}
|
}
|
||||||
fn package(&self) -> ::proc_macro2::TokenStream {
|
fn install_code(&self) -> ::proc_macro2::TokenStream {
|
||||||
let mut all = self.prepare();
|
::quote::quote! {
|
||||||
all.extend(self.configure());
|
self.base().unwrap().install()
|
||||||
all.extend(self.build());
|
}
|
||||||
all.extend(self.check());
|
}
|
||||||
all.extend(self.install());
|
fn package(&self) -> ::core::result::Result<(), ()> {
|
||||||
all
|
self.prepare()?;
|
||||||
|
self.configure()?;
|
||||||
|
self.build()?;
|
||||||
|
self.check()?;
|
||||||
|
self.install()
|
||||||
|
}
|
||||||
|
fn package_code(&self) -> ::proc_macro2::TokenStream {
|
||||||
|
::quote::quote! {
|
||||||
|
self.prepare()?;
|
||||||
|
self.configure()?;
|
||||||
|
self.build()?;
|
||||||
|
self.check()?;
|
||||||
|
self.install()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,7 +146,7 @@ pub trait Pkg: ::std::default::Default + ::core::fmt::Display {
|
||||||
pub struct PkgEmpty {}
|
pub struct PkgEmpty {}
|
||||||
|
|
||||||
impl ::core::fmt::Display for PkgEmpty {
|
impl ::core::fmt::Display for PkgEmpty {
|
||||||
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
|
fn fmt(&self, _f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -122,20 +155,45 @@ impl Pkg for PkgEmpty {
|
||||||
fn base(&self) -> Option<&impl Pkg> {
|
fn base(&self) -> Option<&impl Pkg> {
|
||||||
None::<Self>.as_ref()
|
None::<Self>.as_ref()
|
||||||
}
|
}
|
||||||
fn prepare(&self) -> ::proc_macro2::TokenStream {
|
fn prepare(&self) -> ::core::result::Result<(), ()> {
|
||||||
::quote::quote! {}
|
Ok(())
|
||||||
}
|
}
|
||||||
fn configure(&self) -> ::proc_macro2::TokenStream {
|
fn prepare_code(&self) -> ::proc_macro2::TokenStream {
|
||||||
::quote::quote! {}
|
::quote::quote! {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fn build(&self) -> ::proc_macro2::TokenStream {
|
fn configure(&self) -> ::core::result::Result<(), ()> {
|
||||||
::quote::quote! {}
|
Ok(())
|
||||||
}
|
}
|
||||||
fn check(&self) -> ::proc_macro2::TokenStream {
|
fn configure_code(&self) -> ::proc_macro2::TokenStream {
|
||||||
::quote::quote! {}
|
::quote::quote! {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fn install(&self) -> ::proc_macro2::TokenStream {
|
fn build(&self) -> ::core::result::Result<(), ()> {
|
||||||
::quote::quote! {}
|
Ok(())
|
||||||
|
}
|
||||||
|
fn build_code(&self) -> ::proc_macro2::TokenStream {
|
||||||
|
::quote::quote! {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn check(&self) -> ::core::result::Result<(), ()> {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
fn check_code(&self) -> ::proc_macro2::TokenStream {
|
||||||
|
::quote::quote! {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn install(&self) -> ::core::result::Result<(), ()> {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
fn install_code(&self) -> ::proc_macro2::TokenStream {
|
||||||
|
::quote::quote! {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue