Skip to content

Commit 350b03c

Browse files
authored
Merge pull request #256 from p-x9/feature/loadcommand-cmdsize
2 parents 89255e7 + c2c6bab commit 350b03c

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

Sources/MachOKit/LoadCommand/LoadCommand.swift

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,72 @@ extension LoadCommand {
441441
}
442442
}
443443

444+
extension LoadCommand {
445+
public var commandSize: Int {
446+
let cmdSize = switch self {
447+
case let .segment(info): info.cmdsize
448+
case let .symtab(info): info.cmdsize
449+
case let .symseg(info): info.cmdsize
450+
case let .thread(info): info.cmdsize
451+
case let .unixthread(info): info.cmdsize
452+
case let .loadfvmlib(info): info.cmdsize
453+
case let .idfvmlib(info): info.cmdsize
454+
case let .ident(info): info.cmdsize
455+
case let .fvmfile(info): info.cmdsize
456+
case let .prepage(info): info.cmdsize
457+
case let .dysymtab(info): info.cmdsize
458+
case let .loadDylib(info): info.cmdsize
459+
case let .idDylib(info): info.cmdsize
460+
case let .loadDylinker(info): info.cmdsize
461+
case let .idDylinker(info): info.cmdsize
462+
case let .preboundDylib(info): info.cmdsize
463+
case let .routines(info): info.cmdsize
464+
case let .subFramework(info): info.cmdsize
465+
case let .subUmbrella(info): info.cmdsize
466+
case let .subClient(info): info.cmdsize
467+
case let .subLibrary(info): info.cmdsize
468+
case let .twolevelHints(info): info.cmdsize
469+
case let .prebindCksum(info): info.cmdsize
470+
case let .loadWeakDylib(info): info.cmdsize
471+
case let .segment64(info): info.cmdsize
472+
case let .routines64(info): info.cmdsize
473+
case let .uuid(info): info.cmdsize
474+
case let .rpath(info): info.cmdsize
475+
case let .codeSignature(info): info.cmdsize
476+
case let .segmentSplitInfo(info): info.cmdsize
477+
case let .reexportDylib(info): info.cmdsize
478+
case let .lazyLoadDylib(info): info.cmdsize
479+
case let .encryptionInfo(info): info.cmdsize
480+
case let .dyldInfo(info): info.cmdsize
481+
case let .dyldInfoOnly(info): info.cmdsize
482+
case let .loadUpwardDylib(info): info.cmdsize
483+
case let .versionMinMacosx(info): info.cmdsize
484+
case let .versionMinIphoneos(info): info.cmdsize
485+
case let .functionStarts(info): info.cmdsize
486+
case let .dyldEnvironment(info): info.cmdsize
487+
case let .main(info): info.cmdsize
488+
case let .dataInCode(info): info.cmdsize
489+
case let .sourceVersion(info): info.cmdsize
490+
case let .dylibCodeSignDrs(info): info.cmdsize
491+
case let .encryptionInfo64(info): info.cmdsize
492+
case let .linkerOption(info): info.cmdsize
493+
case let .linkerOptimizationHint(info): info.cmdsize
494+
case let .versionMinTvos(info): info.cmdsize
495+
case let .versionMinWatchos(info): info.cmdsize
496+
case let .note(info): info.cmdsize
497+
case let .buildVersion(info): info.cmdsize
498+
case let .dyldExportsTrie(info): info.cmdsize
499+
case let .dyldChainedFixups(info): info.cmdsize
500+
case let .filesetEntry(info): info.cmdsize
501+
case let .atomInfo(info): info.cmdsize
502+
case let .functionVariants(info): info.cmdsize
503+
case let .functionVariantFixups(info): info.cmdsize
504+
case let .targetTriple(info): info.cmdsize
505+
}
506+
return numericCast(cmdSize)
507+
}
508+
}
509+
444510
extension LoadCommand {
445511
public var info: any LoadCommandWrapper {
446512
switch self {

0 commit comments

Comments
 (0)