@@ -59,21 +59,21 @@ class Superblock(Ext4Struct):
5959 ("s_mnt_count" , c_uint16 ),
6060 ("s_max_mnt_count" , c_uint16 ),
6161 ("s_magic" , c_uint16 ), # 0xEF53
62- ("s_state" , EXT4_FS ),
63- ("s_errors" , EXT4_ERRORS ),
62+ ("s_state" , EXT4_FS . basetype ),
63+ ("s_errors" , EXT4_ERRORS . basetype ),
6464 ("s_minor_rev_level" , c_uint16 ),
6565 ("s_lastcheck" , c_uint32 ),
6666 ("s_checkinterval" , c_uint32 ),
67- ("s_creator_os" , EXT4_OS ),
68- ("s_rev_level" , EXT4_REV ),
67+ ("s_creator_os" , EXT4_OS . basetype ),
68+ ("s_rev_level" , EXT4_REV . basetype ),
6969 ("s_def_resuid" , c_uint16 ),
7070 ("s_def_resgid" , c_uint16 ),
7171 ("s_first_ino" , c_uint32 ),
7272 ("s_inode_size" , c_uint16 ),
7373 ("s_block_group_nr" , c_uint16 ),
74- ("s_feature_compat" , EXT4_FEATURE_COMPAT ),
75- ("s_feature_incompat" , EXT4_FEATURE_INCOMPAT ),
76- ("s_feature_ro_compat" , EXT4_FEATURE_RO_COMPAT ),
74+ ("s_feature_compat" , EXT4_FEATURE_COMPAT . basetype ),
75+ ("s_feature_incompat" , EXT4_FEATURE_INCOMPAT . basetype ),
76+ ("s_feature_ro_compat" , EXT4_FEATURE_RO_COMPAT . basetype ),
7777 ("s_uuid" , c_uint8 * 16 ),
7878 ("s_volume_name" , c_ubyte * 16 ),
7979 ("s_last_mounted" , c_ubyte * 64 ),
@@ -86,10 +86,10 @@ class Superblock(Ext4Struct):
8686 ("s_journal_dev" , c_uint32 ),
8787 ("s_last_orphan" , c_uint32 ),
8888 ("s_hash_seed" , c_uint32 * 4 ),
89- ("s_def_hash_version" , DX_HASH ),
89+ ("s_def_hash_version" , DX_HASH . basetype ),
9090 ("s_jnl_backup_type" , c_uint8 ),
9191 ("s_desc_size" , c_uint16 ),
92- ("s_default_mount_opts" , EXT4_DEFM ),
92+ ("s_default_mount_opts" , EXT4_DEFM . basetype ),
9393 ("s_first_meta_bg" , c_uint32 ),
9494 ("s_mkfs_time" , c_uint32 ),
9595 ("s_jnl_blocks" , c_uint32 * 17 ),
@@ -98,13 +98,13 @@ class Superblock(Ext4Struct):
9898 ("s_free_blocks_count_hi" , c_uint32 ),
9999 ("s_min_extra_isize" , c_uint16 ),
100100 ("s_want_extra_isize" , c_uint16 ),
101- ("s_flags" , EXT2_FLAGS ),
101+ ("s_flags" , EXT2_FLAGS . basetype ),
102102 ("s_raid_stride" , c_uint16 ),
103103 ("s_mmp_interval" , c_uint16 ),
104104 ("s_mmp_block" , c_uint64 ),
105105 ("s_raid_stripe_width" , c_uint32 ),
106106 ("s_log_groups_per_flex" , c_uint8 ),
107- ("s_checksum_type" , EXT4_CHKSUM ),
107+ ("s_checksum_type" , EXT4_CHKSUM . basetype ),
108108 ("s_reserved_pad" , c_uint16 ),
109109 ("s_kbytes_written" , c_uint64 ),
110110 ("s_snapshot_inum" , c_uint32 ),
@@ -122,12 +122,12 @@ class Superblock(Ext4Struct):
122122 ("s_last_error_line" , c_uint32 ),
123123 ("s_last_error_block" , c_uint64 ),
124124 ("s_last_error_func" , c_uint8 * 32 ),
125- ("s_mount_opts" , EXT4_MOUNT * 64 ), # pyright: ignore[reportOperatorIssue]
125+ ("s_mount_opts" , EXT4_MOUNT . basetype * 64 ), # pyright: ignore[reportOperatorIssue]
126126 ("s_usr_quota_inum" , c_uint32 ),
127127 ("s_grp_quota_inum" , c_uint32 ),
128128 ("s_overhead_blocks" , c_uint32 ),
129129 ("s_backup_bgs" , c_uint32 * 2 ),
130- ("s_encrypt_algos" , FS_ENCRYPTION_MODE * 4 ), # pyright: ignore[reportOperatorIssue]
130+ ("s_encrypt_algos" , FS_ENCRYPTION_MODE . basetype * 4 ), # pyright: ignore[reportOperatorIssue]
131131 ("s_encrypt_pw_salt" , c_uint8 * 16 ),
132132 ("s_lpf_ino" , c_uint32 ),
133133 ("s_prj_quota_inum" , c_uint32 ),
@@ -206,21 +206,15 @@ def checksum(self) -> int | None:
206206
207207 @property
208208 def feature_incompat (self ) -> EXT4_FEATURE_INCOMPAT :
209- s_feature_incompat = assert_cast (self .s_feature_incompat , EXT4_FEATURE_INCOMPAT ) # pyright: ignore[reportAny]
210- return s_feature_incompat
209+ return EXT4_FEATURE_INCOMPAT (self .s_feature_incompat ) # pyright: ignore[reportAny]
211210
212211 @property
213212 def feature_compat (self ) -> EXT4_FEATURE_COMPAT :
214- s_feature_compat = assert_cast (self .s_feature_compat , EXT4_FEATURE_COMPAT ) # pyright: ignore[reportAny]
215- return s_feature_compat
213+ return EXT4_FEATURE_COMPAT (self .s_feature_compat ) # pyright: ignore[reportAny]
216214
217215 @property
218216 def feature_ro_compat (self ) -> EXT4_FEATURE_RO_COMPAT :
219- s_feature_ro_compat = assert_cast (
220- self .s_feature_ro_compat , # pyright: ignore[reportAny]
221- EXT4_FEATURE_RO_COMPAT ,
222- )
223- return s_feature_ro_compat
217+ return EXT4_FEATURE_RO_COMPAT (self .s_feature_ro_compat ) # pyright: ignore[reportAny]
224218
225219 @property
226220 def seed (self ) -> int :
0 commit comments