You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: lib.rs
    path of file: ./repos/ink/integration-tests/upgradeable-contracts/delegator
    
    the code of the file until where you have to start completion: #![cfg_attr(not(feature = "std"), no_std, no_main)]

#[ink::contract]
pub mod delegator {
    use ink::{
        env::{
            call::{
                build_call,
                ExecutionInput,
                Selector,
            },
            CallFlags,
            DefaultEnvironment,
        },
        storage::{
            traits::ManualKey,
            Lazy,
            Mapping,
        },
    };

    #[ink(storage)]
    pub struct Delegator {
   
    
        pub fn inc_delegate(&mut self) {
            let selector = ink::selector_bytes!("inc");
            let _ = build_call::<DefaultEnvironment>()
                .delegate(self.delegate_to())
                // We specify `CallFlags::TAIL_CALL` to use the delegatee last memory frame
                // as the end of the execution cycle.
                // So any mutations to `Packed` types, made by delegatee,
                // will be flushed to storage.
                //
                // If we don't specify this flag.
                // The storage state before the delegate call will be flushed to storage instead.
                // See https://substrate.stackexchange.com/questions/3336/i-found-set-allow-reentry-may-have-some-problems/3352#3352
                .call_flags(CallFlags::TAIL_CALL)
                .exec_input(ExecutionInput::new(Selector::new(selector)))
                .returns::<()>()
                .try_invoke();
        }