/* * 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 One { pub my_attr: u32, } impl ::std::default::Default for One { fn default() -> Self { One { base: ::bok::PkgEmpty::default(), my_attr: 1, } } } impl One { #[::bok_macro::to_code] fn test() -> u32 { 42 } }