/* * Copyright 2024 Luca Fulchir * * Licensed under the Apache License, Version 2.0 with LLVM exception (the * "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License and of the exception at * * http://www.apache.org/licenses/LICENSE-2.0 * https://spdx.org/licenses/LLVM-exception.html * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /// Example package /// Automatically implements `.builder().my_attr(42).build()` pattern #[::bok_macro::package(::bok::PkgEmpty)] pub struct Three { pub my_attr: u32, } impl ::std::default::Default for Three { fn default() -> Self { Three { base: bok::PkgEmpty::default(), version: ::bok::Version { major: 0, minor: 0, patch: 3, pre: ::bok::Prerelease::EMPTY, build: ::bok::BuildMetadata::EMPTY, }, my_attr: 3, } } } #[::bok::impl_package] impl ::bok::Pkg for Three { fn build(&self) -> ::core::result::Result<(), ()> { ret = ::core::result::Result::Ok(()); } fn dependencies_set( &self, _repo: ::std::sync::Arc, _build: &::bok::deps::Build, _runtime: &::bok::deps::Runtime, ) -> Result<(), ()> { Ok(()) } }