pub fn is_writable(&self, key_index: usize) -> bool {
        if self.is_writable_index(key_index) {
            if let Some(key) = self.get_account_key(key_index) {
                let demote_program_id = self.is_key_called_as_program(key_index)
                    && !self.is_upgradeable_loader_present();
                return !(sysvar::is_sysvar_id(key)
                    || BUILTIN_PROGRAMS_KEYS.contains(key)
                    || demote_program_id);
            }
        }
        false
    }
/// Returns true if the account at the specified index was loaded as writable
Returns true if the account at the specified index was loaded as writable
Returns true if the account at the specified index was loaded as writable
pub fn is_writable(&self, key_index: usize) -> bool {
        if self.is_writable_index(key_index) {
            if let Some(key) = self.get_account_key(key_index) {
                let demote_program_id = self.is_key_called_as_program(key_index)
                    && !self.is_upgradeable_loader_present();
                return !(sysvar::is_sysvar_id(key)
                    || BUILTIN_PROGRAMS_KEYS.contains(key)
                    || demote_program_id);
            }
        }
        false
    }
pub fn is_writable ( & self , key_index : usize ) -> bool { if self . is_writable_index ( key_index ) { if let Some ( key ) = self . get_account_key ( key_index ) { let demote_program_id = self . is_key_called_as_program ( key_index ) && ! self . is_upgradeable_loader_present ( ) ; return ! ( sysvar :: is_sysvar_id ( key ) || BUILTIN_PROGRAMS_KEYS . contains ( key ) || demote_program_id ) ; } } false }
Returns true if the account at the specified index was loaded as writable
Returns true if the account at the specified index was loaded as writable
&self
key_index
usize