/**
 * This code was AUTOGENERATED using the Codama library.
 * Please DO NOT EDIT THIS FILE, instead use visitors
 * to add features, then rerun Codama to update it.
 *
 * @see https://github.com/codama-idl/codama
 */

import { combineCodec, getEnumDecoder, getEnumEncoder, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder } from '@solana/kit';

export enum RebalanceType { Manual, PricePercentage, PricePercentageWithReset, Drift, TakeProfit, PeriodicRebalance, Expander, Autodrift };

export type RebalanceTypeArgs = RebalanceType;

export function getRebalanceTypeEncoder(): FixedSizeEncoder<RebalanceTypeArgs> {
    return getEnumEncoder(RebalanceType);
}

export function getRebalanceTypeDecoder(): FixedSizeDecoder<RebalanceType> {
    return getEnumDecoder(RebalanceType);
}

export function getRebalanceTypeCodec(): FixedSizeCodec<RebalanceTypeArgs, RebalanceType> {
    return combineCodec(getRebalanceTypeEncoder(), getRebalanceTypeDecoder());
}