<!--
  Copyright (C) 2015 William Yu <williamyu@gnome.org>
  
  This library is free software: you can redistribute it and/or modify it
  under the terms of version 2.1. of the GNU Lesser General Public License
  as published by the Free Software Foundation.
  
  This library is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
  for more details.
  
  You should have received a copy of the GNU Lesser General Public License
  along with this library. If not, see <http://www.gnu.org/licenses/>.
-->
<structure namespace="ICal" name="RecurrenceType" native="struct icalrecurrencetype" is_bare="true" default_native="i_cal_recurrence_type_new ()">
     <enum name="ICalRecurrenceTypeFrequency" default_native="I_CAL_NO_RECURRENCE">
        <element name="ICAL_SECONDLY_RECURRENCE"/>
        <element name="ICAL_MINUTELY_RECURRENCE"/>	
        <element name="ICAL_HOURLY_RECURRENCE"/>
        <element name="ICAL_DAILY_RECURRENCE"/>
        <element name="ICAL_WEEKLY_RECURRENCE"/>
        <element name="ICAL_MONTHLY_RECURRENCE"/>
        <element name="ICAL_YEARLY_RECURRENCE"/>
        <element name="ICAL_NO_RECURRENCE"/>
    </enum>
    <enum name="ICalRecurrenceTypeWeekday" default_native="I_CAL_NO_WEEKDAY">
        <element name="ICAL_NO_WEEKDAY"/>
        <element name="ICAL_SUNDAY_WEEKDAY"/>	
        <element name="ICAL_MONDAY_WEEKDAY"/>
        <element name="ICAL_TUESDAY_WEEKDAY"/>
        <element name="ICAL_WEDNESDAY_WEEKDAY"/>
        <element name="ICAL_THURSDAY_WEEKDAY"/>
        <element name="ICAL_FRIDAY_WEEKDAY"/>
        <element name="ICAL_SATURDAY_WEEKDAY"/>
    </enum>
    <method name="i_cal_recurrence_type_new" corresponds="CUSTOM" annotation="skip" kind="private" since="1.0">
    	<returns type="struct icalrecurrencetype" comment="The default value."/>
    	<custom>	struct icalrecurrencetype ret;
	icalrecurrencetype_clear (&amp;ret);
	return ret;</custom>
    </method>
    <method name="i_cal_recurrence_type_clear" corresponds="icalrecurrencetype_clear" since="1.0">
        <parameter type="ICalRecurrenceType *" name="r" native_op="POINTER" comment="The #ICalRecurrenceType to be reset."/>
        <comment xml:space="preserve">Reset an #ICalRecurrenceType.</comment>
    </method>
    <method name="i_cal_recurrence_type_day_day_of_week" corresponds="icalrecurrencetype_day_day_of_week" since="1.0">
        <parameter type="gshort" name="day" comment="The encoded day which represents the day of the week and Nth day of the week."/>
        <returns type="ICalRecurrenceTypeWeekday" comment="The decoded weekday with Monday to be 1."/>
        <comment xml:space="preserve">Decode a day to a weekday in a week.</comment>
    </method>
    <method name="i_cal_recurrence_type_day_position" corresponds="icalrecurrencetype_day_position" since="1.0">
        <parameter type="gshort" name="day" comment="The encoded day which represents the day of the week and Nth day of the week."/>
        <returns type="gint" comment="The decoded day of the week. 0 == any of day of week. 1 == first, 2 = second, -2 == second to last, etc"/>
        <comment xml:space="preserve">Decode a day to a position of the weekday.</comment>
    </method>
    <method name="i_cal_recurrence_type_from_string" corresponds="icalrecurrencetype_from_string" since="1.0">
        <parameter type="const gchar *" name="str" comment="The string representation of the #ICalRecurrenceType"/>
        <returns type="ICalRecurrenceType *" annotation="transfer full" comment="The #ICalRecurrenceType converted from @str."/>
        <comment xml:space="preserve">Convert a string to a #ICalRecurrenceType.</comment>
    </method>
    <method name="i_cal_recurrence_type_as_string_r" corresponds="icalrecurrencetype_as_string_r" since="1.0">
        <parameter type="ICalRecurrenceType *" name="recur" native_op="POINTER" comment="The #ICalRecurrenceType to be converted."/>
        <returns type="gchar *" annotation="transfer full" comment="The string representation of @recur."/>
        <comment xml:space="preserve">Convert a #ICalRecurrenceType to a string.</comment>
    </method>
    <method name="i_cal_recurrence_type_get_until" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="ICalTimetype *" annotation="transfer full" comment="The until of #ICalRecurrenceType."/>
        <comment>Get the until from #ICalRecurrenceType.</comment>
        <custom>	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), NULL);
	return i_cal_timetype_new_full (((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->until);</custom>
    </method>
    <method name="i_cal_recurrence_type_set_until" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <parameter type="ICalTimetype *" name="until" comment="The until of #ICalRecurrenceType."/>
        <comment>Set the until from #ICalRecurrenceType.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	g_return_if_fail (until != NULL &amp;&amp; I_CAL_IS_TIMETYPE (until));
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->until = *(icaltimetype *)i_cal_object_get_native ((ICalObject *)until);</custom>
    </method>
    <method name="i_cal_recurrence_type_get_freq" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="ICalRecurrenceTypeFrequency" comment="The freq of #ICalRecurrenceType."/>
        <comment>Get the freq from #ICalRecurrenceType.</comment>
        <custom>	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), I_CAL_NO_RECURRENCE);
	return ((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->freq;</custom>
    </method>
    <method name="i_cal_recurrence_type_set_freq" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <parameter type="ICalRecurrenceTypeFrequency" name="freq" comment="The freq of #ICalRecurrenceType."/>
        <comment>Set the freq from #ICalRecurrenceType.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->freq = freq;</custom>
    </method>
    <method name="i_cal_recurrence_type_get_count" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="gint" comment="The count of #ICalRecurrenceType."/>
        <comment>Get the count from #ICalRecurrenceType.</comment>
        <custom>	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), 0);
	return ((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->count;</custom>
    </method>
    <method name="i_cal_recurrence_type_set_count" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <parameter type="gint" name="count" comment="The count of #ICalRecurrenceType."/>
        <comment>Set the count from #ICalRecurrenceType.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->count = count;</custom>
    </method>
    <method name="i_cal_recurrence_type_get_interval" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="gshort" comment="The interval of #ICalRecurrenceType."/>
        <comment>Get the interval from #ICalRecurrenceType.</comment>
        <custom>	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), 0);
	return ((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->interval;</custom>
    </method>
    <method name="i_cal_recurrence_type_set_interval" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <parameter type="gshort" name="interval" comment="The interval of #ICalRecurrenceType."/>
        <comment>Set the interval from #ICalRecurrenceType.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->interval = interval;</custom>
    </method>
    <method name="i_cal_recurrence_type_get_week_start" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="ICalRecurrenceTypeWeekday" comment="The week_start of #ICalRecurrenceType."/>
        <comment>Get the week_start from #ICalRecurrenceType.</comment>
        <custom>	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), I_CAL_NO_WEEKDAY);
	return ((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->week_start;</custom>
    </method>
    <method name="i_cal_recurrence_type_set_week_start" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <parameter type="ICalRecurrenceTypeWeekday" name="week_start" comment="The week_start of #ICalRecurrenceType."/>
        <comment>Set the week_start from #ICalRecurrenceType.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->week_start = week_start;</custom>
    </method>
    <method name="i_cal_recurrence_type_get_by_second" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="GArray *" annotation="transfer full, element-type short" comment="The by_second of #ICalRecurrenceType."/>
        <comment>Get the by_second array from #ICalRecurrenceType. The array size if ICAL_BY_SECOND_SIZE.</comment>
        <custom>	GArray *array;
	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), 0);
	array = g_array_new (FALSE, TRUE, sizeof (gshort));
	g_array_append_vals (array, ((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_second, ICAL_BY_SECOND_SIZE);
	return array;</custom>
    </method>
    <method name="i_cal_recurrence_type_set_by_second" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
    	<parameter type="guint" name="index" comment="The index in by_second of #ICalRecurrenceType."/>
    	<parameter type="gshort" name="value" comment="The value to be set into by_second of #ICalRecurrenceType."/>        
    	<comment>Set the by_second array from #ICalRecurrenceType at the given index. The array size if ICAL_BY_SECOND_SIZE.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	g_return_if_fail (index &lt; ICAL_BY_SECOND_SIZE);
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_second[index] = value;</custom>
    </method>
    <method name="i_cal_recurrence_type_get_by_minute" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="GArray *" annotation="transfer full, element-type gshort" comment="The by_minute of #ICalRecurrenceType."/>
        <comment>Get the by_minute array from #ICalRecurrenceType. The array size if ICAL_BY_MINUTE_SIZE.</comment>
        <custom>	GArray *array;
	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), 0);
	array = g_array_new (FALSE, FALSE, sizeof (gshort));
	g_array_append_vals (array, ((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_minute, ICAL_BY_MINUTE_SIZE);
	return array;</custom>
    </method>
    <method name="i_cal_recurrence_type_set_by_minute" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
    	<parameter type="guint" name="index" comment="The index in by_minute of #ICalRecurrenceType."/>
    	<parameter type="gshort" name="value" comment="The value to be set into by_minute of #ICalRecurrenceType."/>        
    	<comment>Set the by_minute array from #ICalRecurrenceType at the given index. The array size if ICAL_BY_MINUTE_SIZE.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	g_return_if_fail (index &lt; ICAL_BY_MINUTE_SIZE);
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_minute[index] = value;</custom>
    </method>
    <method name="i_cal_recurrence_type_get_by_hour" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="GArray *" annotation="transfer full, element-type gshort" comment="The by_hour of #ICalRecurrenceType."/>
        <comment>Get the by_hour array from #ICalRecurrenceType. The array size if ICAL_BY_HOUR_SIZE.</comment>
        <custom>	GArray *array;
	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), 0);
	array = g_array_new (FALSE, FALSE, sizeof (gshort));
	g_array_append_vals (array, ((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_hour, ICAL_BY_HOUR_SIZE);
	return array;</custom>
    </method>
    <method name="i_cal_recurrence_type_set_by_hour" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
    	<parameter type="guint" name="index" comment="The index in by_hour of #ICalRecurrenceType."/>
    	<parameter type="gshort" name="value" comment="The value to be set into by_hour of #ICalRecurrenceType."/>        
    	<comment>Set the by_hour array from #ICalRecurrenceType at the given index. The array size if ICAL_BY_HOUR_SIZE.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	g_return_if_fail (index &lt; ICAL_BY_HOUR_SIZE);
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_hour[index] = value;</custom>
    </method>
    <method name="i_cal_recurrence_type_get_by_day" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="GArray *" annotation="transfer full, element-type gshort" comment="The by_day of #ICalRecurrenceType."/>
        <comment>Get the by_day array from #ICalRecurrenceType. The array size if ICAL_BY_DAY_SIZE.</comment>
        <custom>	GArray *array;
	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), 0);
	array = g_array_new (FALSE, FALSE, sizeof (gshort));
	g_array_append_vals (array, ((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_day, ICAL_BY_DAY_SIZE);
	return array;</custom>
    </method>
    <method name="i_cal_recurrence_type_set_by_day" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
    	<parameter type="guint" name="index" comment="The index in by_day of #ICalRecurrenceType."/>
    	<parameter type="gshort" name="value" comment="The value to be set into by_day of #ICalRecurrenceType."/>        
    	<comment>Set the by_day array from #ICalRecurrenceType at the given index. The array size if ICAL_BY_DAY_SIZE.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	g_return_if_fail (index &lt; ICAL_BY_DAY_SIZE);
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_day[index] = value;</custom>
    </method>
    <method name="i_cal_recurrence_type_get_by_month_day" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="GArray *" annotation="transfer full, element-type gshort" comment="The by_month_day of #ICalRecurrenceType."/>
        <comment>Get the by_month_day array from #ICalRecurrenceType. The array size if ICAL_BY_MONTHDAY_SIZE.</comment>
        <custom>	GArray *array;
	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), 0);
	array = g_array_new (FALSE, FALSE, sizeof (gshort));
	g_array_append_vals (array, ((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_month_day, ICAL_BY_MONTHDAY_SIZE);
	return array;</custom>
    </method>
    <method name="i_cal_recurrence_type_set_by_month_day" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
    	<parameter type="guint" name="index" comment="The index in by_month_day of #ICalRecurrenceType."/>
    	<parameter type="gshort" name="value" comment="The value to be set into by_month_day of #ICalRecurrenceType."/>        
    	<comment>Set the by_month_day array from #ICalRecurrenceType at the given index. The array size if ICAL_BY_MONTHDAY_SIZE.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	g_return_if_fail (index &lt; ICAL_BY_MONTHDAY_SIZE);
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_month_day[index] = value;</custom>
    </method>
    <method name="i_cal_recurrence_type_get_by_year_day" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="GArray *" annotation="transfer full, element-type gshort" comment="The by_year_day of #ICalRecurrenceType."/>
        <comment>Get the by_year_day array from #ICalRecurrenceType. The array size if ICAL_BY_YEARDAY_SIZE.</comment>
        <custom>	GArray *array;
	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), 0);
	array = g_array_new (FALSE, FALSE, sizeof (gshort));
	g_array_append_vals (array, ((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_year_day, ICAL_BY_YEARDAY_SIZE);
	return array;</custom>
    </method>
    <method name="i_cal_recurrence_type_set_by_year_day" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
    	<parameter type="guint" name="index" comment="The index in by_year_day of #ICalRecurrenceType."/>
    	<parameter type="gshort" name="value" comment="The value to be set into by_year_day of #ICalRecurrenceType."/>        
    	<comment>Set the by_year_day array from #ICalRecurrenceType at the given index. The array size if ICAL_BY_YEARDAY_SIZE.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	g_return_if_fail (index &lt; ICAL_BY_YEARDAY_SIZE);
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_year_day[index] = value;</custom>
    </method>
    <method name="i_cal_recurrence_type_get_by_week_no" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="GArray *" annotation="transfer full, element-type gshort" comment="The by_week_no of #ICalRecurrenceType."/>
        <comment>Get the by_week_no array from #ICalRecurrenceType. The array size if ICAL_BY_WEEKNO_SIZE.</comment>
        <custom>	GArray *array;
	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), 0);
	array = g_array_new (FALSE, FALSE, sizeof (gshort));
	g_array_append_vals (array, ((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_week_no, ICAL_BY_WEEKNO_SIZE);
	return array;</custom>
    </method>
    <method name="i_cal_recurrence_type_set_by_week_no" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
    	<parameter type="guint" name="index" comment="The index in by_week_no of #ICalRecurrenceType."/>
    	<parameter type="gshort" name="value" comment="The value to be set into by_week_no of #ICalRecurrenceType."/>        
    	<comment>Set the by_week_no array from #ICalRecurrenceType at the given index. The array size if ICAL_BY_WEEKNO_SIZE.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	g_return_if_fail (index &lt; ICAL_BY_WEEKNO_SIZE);
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_week_no[index] = value;</custom>
    </method>
    <method name="i_cal_recurrence_type_get_by_month" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="GArray *" annotation="transfer full, element-type gshort" comment="The by_month of #ICalRecurrenceType."/>
        <comment>Get the by_month array from #ICalRecurrenceType. The array size if ICAL_BY_MONTH_SIZE.</comment>
        <custom>	GArray *array;
	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), 0);
	array = g_array_new (FALSE, FALSE, sizeof (gshort));
	g_array_append_vals (array, ((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_month, ICAL_BY_MONTH_SIZE);
	return array;</custom>
    </method>
    <method name="i_cal_recurrence_type_set_by_month" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
    	<parameter type="guint" name="index" comment="The index in by_month of #ICalRecurrenceType."/>
    	<parameter type="gshort" name="value" comment="The value to be set into by_month of #ICalRecurrenceType."/>        
    	<comment>Set the by_month array from #ICalRecurrenceType at the given index. The array size if ICAL_BY_MONTH_SIZE.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	g_return_if_fail (index &lt; ICAL_BY_MONTH_SIZE);
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_month[index] = value;</custom>
    </method>
    <method name="i_cal_recurrence_type_get_by_set_pos" corresponds="CUSTOM" kind="get" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
        <returns type="GArray *" annotation="transfer full, element-type gshort" comment="The by_set_pos of #ICalRecurrenceType."/>
        <comment>Get the by_set_pos array from #ICalRecurrenceType. The array size if ICAL_BY_SETPOS_SIZE.</comment>
        <custom>	GArray *array;
	g_return_val_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur), 0);
	array = g_array_new (FALSE, FALSE, sizeof (gshort));
	g_array_append_vals (array, ((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_set_pos, ICAL_BY_SETPOS_SIZE);
	return array;</custom>
    </method>
    <method name="i_cal_recurrence_type_set_by_set_pos" corresponds="CUSTOM" kind="set" since="1.0">
    	<parameter type="ICalRecurrenceType *" name="recur" comment="The #ICalRecurrenceType."/>
    	<parameter type="guint" name="index" comment="The index in by_set_pos of #ICalRecurrenceType."/>
    	<parameter type="gshort" name="value" comment="The value to be set into by_set_pos of #ICalRecurrenceType."/>        
    	<comment>Set the by_set_pos array from #ICalRecurrenceType at the given index. The array size if ICAL_BY_SETPOS_SIZE.</comment>
        <custom>	g_return_if_fail (recur != NULL &amp;&amp; I_CAL_IS_RECURRENCE_TYPE (recur));
	g_return_if_fail (index &lt; ICAL_BY_SETPOS_SIZE);
	((struct icalrecurrencetype *)i_cal_object_get_native ((ICalObject *)recur))->by_set_pos[index] = value;</custom>
    </method>
</structure>
